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

简介:

< 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  ,如需转载请自行联系原作者

相关文章
|
8月前
|
JavaScript 前端开发 数据安全/隐私保护
提交表单与验证表单案例
提交表单与验证表单案例
60 0
|
缓存 NoSQL JavaScript
8 种方案解决重复提交问题,还怕没有适合你的?
8 种方案解决重复提交问题,还怕没有适合你的?
|
设计模式 JavaScript 数据库
表单防止重复提交的四种方式
表单防止重复提交的四种方式
358 0
|
缓存 弹性计算 负载均衡
11. 分布式系统接口,如何避免表单的重复提交?
11. 分布式系统接口,如何避免表单的重复提交?
228 0
|
Java 应用服务中间件
想知道如何正确地保证表单提交的幂等性吗?(一)
哈喽,大家好,我是指北君。 关于表单的提交相信作为一个后端开发接触过不少,本文将介绍如何解决表单重复提交的问题。
想知道如何正确地保证表单提交的幂等性吗?(一)
|
存储 前端开发
想知道如何正确地保证表单提交的幂等性吗?(二)
哈喽,大家好,我是指北君。 关于表单的提交相信作为一个后端开发接触过不少,本文将介绍如何解决表单重复提交的问题。
想知道如何正确地保证表单提交的幂等性吗?(二)
|
存储 缓存 NoSQL
想知道如何正确地保证表单提交的幂等性吗?(三)
哈喽,大家好,我是指北君。 关于表单的提交相信作为一个后端开发接触过不少,本文将介绍如何解决表单重复提交的问题。
想知道如何正确地保证表单提交的幂等性吗?(三)
|
存储 SQL 算法
最简单的6种防止数据重复提交的方法!(干货)下
最简单的6种防止数据重复提交的方法!(干货)
380 1
|
存储 前端开发 安全
最简单的6种防止数据重复提交的方法!(干货)上
最简单的6种防止数据重复提交的方法!(干货)
881 0
|
缓存 NoSQL JavaScript
8 种方案解决重复提交问题!你选择哪一种呀?
1.什么是幂等 2.产生原因 3.解决方案 ①配置注解 ②实例化锁 ③AOP 切面 ④注解使用案例