struts2造成的多次提交和ajax调用不进入后台问题发现和解决

网友投稿 517 2022-11-02

struts2造成的多次提交和ajax调用不进入后台问题发现和解决

struts2造成的多次提交和ajax调用不进入后台问题发现和解决

1.struts2多次提交

这种情况发生在网络较慢时,现象是前端ajax调用一次struts2接口,因为网速较慢,struts2自动调用了多次某接口。这种情况对于提交操作很要命,会出现以下两种情况造成体验差: 1.显示失败,实际成功(发生在首次提交失败,后续成功的情况,后续成功不会返回前端正确数据) 2.显示成功,数据多条(这个问题很严重,用户下了一张单结果显示多条,系统管理方面也不好操作)

处理方法

简单方法:获取数据库唯一值【存在限制】 存在30秒内各项数据都相同的单,就update,否则insert,这个时间可以根据自己的需求来定,此方法的限制是,数据表内必须存在唯一主键和更新日期,不然用不了复杂方法:使用token【通用】 1.session中使用token保存,然后使用时进入方法则删除token

js创建token接口,提交前先设置session:

.ajax({ type: type, url:path,//此处进入后台设置token data: data, dataType:dataType, success:function(d){ }, error:function(e){ } });

后台:

public void someMethod(){ request.getSession().setAttribute("submit","1");}

提交:

public void submit(){ String data = request.getSession().getAttribute("submit"); if(data == null){ return; }else{ request.getSession().setAttribute("submit",null); //进行提交操作 }}

2.ajax不进入后台

.ajax({ type: type, url:path, data: data, cache:false,//此处设无缓存 dataType:dataType, success:function(d){ }, error:function(e){ } });

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:New Relic - 找到并修复Ruby错误使用New Relic的应用程序监控和故障诊断
下一篇:CodeForces 1293A——ConneR and the A.R.C. Markland-N【签到题】
相关文章

 发表评论

暂时没有评论,来抢沙发吧~