防止表单重复提交的几种方案

简介:

< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd>

         重复提交、重复刷新都是来解决系统重复记录的问题。在我们做程序开发的时候经常会遇到用户点了提交以后,由于各种原因用户会在去点提交或是按浏览器的刷新按扭,从而导致数据重复提交。

        我们来了解一下"防止后退"操作的原因是什么?比如你在开发某个投票系统,它有很多的步骤,并且这些步骤之间是有联系的,比如第一步会将某些信息发送给第二步,第二步缓存了这些信息,同时将自身的信息发送给了第三步。。。。。等等,如果此时用户处在第三步骤下,我们想象一下某个淘气用户的用户点击了后退按钮,此时屏幕出现了第二步骤的页面,他再次的修改或者再次的提交,进入到下一个步骤(也就是第三步骤),错误就会在此产生?!什么错误呢?最为典型的就是这样的操作直接导致了对于第一个步骤信息的丢失!
       当然很多的系统(比如订票系统从需求上本身是允许个人重复订票的)是必须要避免重复刷新、重复提交、以及防止后退的问题的,但即使是这样的问题,也要区分如何处理以及在哪里处理的(网上只是告诉你如何处理,但很少去区分在哪里处理的),显然处理的方式无非是客户端或者服务器端两种,而面对不同的位置处理的方式也是不同的,但有一点要事先声明:任何客户端(尤其是B/S端)的处理都是不可信任的,最好的也是最应该的是服务器端的处理方法。
     以下列举了几种防止重复提交的几种解决方案.

第一种方法:
         在提交以后用页面跳转的方法来重新处理打开当前页,如:Response.Redirect("本页")。也可以达到我们要的目的。



其它方案:
      写js设置一个变量,只允许提交一次.但是客户端总是信不过的,最好还是用前面两种方案去解决后退.

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2008/06/27/2912131.html  ,如需转载请自行联系原作者

相关文章
|
9月前
|
JavaScript 前端开发 数据安全/隐私保护
提交表单与验证表单案例
提交表单与验证表单案例
69 0
|
缓存 NoSQL JavaScript
8 种方案解决重复提交问题,还怕没有适合你的?
8 种方案解决重复提交问题,还怕没有适合你的?
|
设计模式 JavaScript 数据库
表单防止重复提交的四种方式
表单防止重复提交的四种方式
417 0
|
缓存 弹性计算 负载均衡
11. 分布式系统接口,如何避免表单的重复提交?
11. 分布式系统接口,如何避免表单的重复提交?
233 0
|
存储 SQL 算法
最简单的6种防止数据重复提交的方法!(干货)下
最简单的6种防止数据重复提交的方法!(干货)
392 1
|
存储 前端开发 安全
最简单的6种防止数据重复提交的方法!(干货)上
最简单的6种防止数据重复提交的方法!(干货)
890 0
Struts2使用Token避免表单重复提交(十三)下
Struts2使用Token避免表单重复提交(十三)
225 0
Struts2使用Token避免表单重复提交(十三)下
|
前端开发
Struts2使用Token避免表单重复提交(十三)上
Struts2使用Token避免表单重复提交(十三)
136 0
Struts2使用Token避免表单重复提交(十三)上
|
JavaScript
jQuery 禁用表单提交按钮,防止用户请求重复提交
jQuery 禁用表单提交按钮,防止用户请求重复提交
220 0
jQuery 禁用表单提交按钮,防止用户请求重复提交
|
缓存 NoSQL JavaScript
8 种方案解决重复提交问题!你选择哪一种呀?
1.什么是幂等 2.产生原因 3.解决方案 ①配置注解 ②实例化锁 ③AOP 切面 ④注解使用案例

热门文章

最新文章