如何避免二次提交的可能方案

原创 2013年12月04日 10:00:36

二次提交目前做法

控制方式

由于咱们前期曾经尝试过通过把按钮置灰的方式来控制二次提交,所以此次尝试前台和后台结合的方式来控制二次提交;

原理:

在需要防止二次提交的页面,增加 一个 令牌 token ,在提交的时,拿此token与 平台预先定义好的并存放在session中的token做比较,如果相等,则放行,然后把session的token给修改掉(此处有几处需要还原token的逻辑),如果不相等(即二次或者多次提交的情况),则屏蔽此次提交;

 

代码实现:

1.    在页面增加token隐藏域,value 值为uuid生成的随机码,同时在session中保留一份,


2.    增加拦截器PreventSecondSubmitInterceptor,完成页面上提交的token与 session中token的对比

3. 增加header标识;这个存在争议,看看是否有更好的办法?现在这个是解决直接output输出的这种情况;

 

增加此标识解决的问题是:如果是验证逻辑,目前咱们系统的代码基本上都是往前台直接输出的,想要还原session,就需要记录此种情况。

 

个人建议:其实咱们系统中是支持直接抛异常的来处理验证这种情况,建议废除,直接output这种方式,这样只需要catch一下,就搞定了,不需要增加header,是为了兼容;

咱们系统的ajaxsave 方法及其与其关联的两个方法inisave和postsave,建议不要把异常吃掉,建议抛出因为异常拦截器,已经处理了此种情况;(应该可以解决,目前没有做验证)

4.    sesssion token对应的类型是map,原来是字符串,修改的原因:解决多层弹出编辑页面,父页面不能提交的问题;

struts解决此问题的方法是:自己需要指定 隐藏域的 name,不然也会出现此问题;

 

 

 

 

struts的二次提交解决方案:有兴趣的可以研究研究;两个拦截器:

TokenInterceptorTokenSessionStoreInterceptor

 

区别是:第一个拦截器,重复提交时,跳转到一个中间页面

       第二个拦截器,重复提交时,跳转到正常提交后的返回页面,只是除了第一次请求正确执行外,其他被屏蔽,这个操作对用户透明,用户是感觉不到的;咱们系统目前没有发现这个问题;

jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)

前言: 当jquery ajax在utf-8编码下(页面utf-8,接收utf-8),无任何问题。可以正常post、get,处理页面直接获取正确的内容。 但在以下情况下: GBK -> AJAX...
  • jpr1990
  • jpr1990
  • 2012年02月07日 09:34
  • 2715

jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)

前言: 当jquery ajax在utf-8编码下(页面utf-8,接收utf-8),无任何问题。可以正常post、get,处理页面直接获取正确的内容。 但在以下情况下: GBK -> AJAX...

jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)

前言: 当jquery ajax在utf-8编码下(页面utf-8,接收utf-8),无任何问题。可以正常post、get,处理页面直接获取正确的内容。 但在以下情况下: GBK -> AJAX...

二次提交的避免方法(源于互联网)=>个人总结

第一种:用flag标识,下面的代码设置checkSubmitFlg标志; 第二种:在onsubmit事件中设置,在第一次提交后使提交按钮失效,感兴趣的朋友可以了解下 第一种:用flag标识,下面的代...

二次结构方案(主体框架结构)

  • 2011年07月14日 21:38
  • 12.39MB
  • 下载

ECSHOP二次开发之首页调用团购数量方案

$row['last_amount'] = $amount_price['amount']; 1,自己改的复制上面那一断在红色的地方就可以了 /* 根据价格阶梯,计算最低价 */        ...
  • ximo
  • ximo
  • 2012年09月17日 17:25
  • 10095

APK防二次打包解决方案

  • 2017年12月13日 21:33
  • 2.55MB
  • 下载

网站需要做好二次营销的几个方案才能将流量最大化

网站如何做好网络营销,现如今最大的问题就是流量越来越难搞,也越来越贵,进而带来的就是网络营销成本越来越高,转化率却得不到明显的提升。仅仅依靠传统的站外营销方式,效果差,见效慢,难以有效整合多种营销方式...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何避免二次提交的可能方案
举报原因:
原因补充:

(最多只允许输入30个字)