Web应用中重复提交的问题的三种解决方案

原创 2004年10月20日 19:59:00

前两种是利用javascript,后面一种是在使用Struts的情况下的参考实现

1 javascript ,设置一个变量,只允许提交一次。


<html:form action="myAction.do" method="post" onsubmit="return checkSubmit();">

2 还是javascript,将提交按钮或者image置为disable


3 利用struts的同步令牌机制

利用同步令牌(Token)机制来解决Web应用中重复提交的问题,Struts也给出了一个参考实现。

基本原理:

        服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。


Struts根据用户会话ID和当前系统时间来生成一个唯一(对于每个会话)令牌的,具体实现可以参考TokenProcessor类中的generateToken()方法。

1. //验证事务控制令牌,<html:form >会自动根据session中标识生成一个隐含input代表令牌,防止两次提交
2. 在action中:


3. action有这样的一个方法生成令牌

java后端解决重复提交问题

一、为什么会出现重复提交? 主要是由于网络的延迟问题以及页面刷新的操作。 二、表单的重复提交会导致的问题? 主要能够造成很多脏数据。 三、解决的办法: 3.1 前端解决办法:通过...
  • zwb19940216
  • zwb19940216
  • 2017年10月02日 18:10
  • 865

JSP几种常见中文乱码解决方案

1.JSP文件中文内容显示乱码 通过浏览器调用JSP页面,在客户端浏览器中所有的中文内容出现乱码  解决方案:替换ISO-8859-1,修改页面编码为UTF-8 或者其他中文字符集...
  • zxjcarrot
  • zxjcarrot
  • 2013年05月21日 23:01
  • 545

用户重复提交的三种解决方案

用户重复提交的三种解决方案:1.提交按钮首次提交之后消失或屏蔽,不做赘述2.struts的同步令牌机制首次了解这种解决方案,感觉挺好的,但随着深入,发现该方案并无实际的操作性....但思想很好,希望能...
  • rookieStudent
  • rookieStudent
  • 2010年04月09日 15:39
  • 315

struts应用中重复提交的问题的三种解决方案

解决重复提交的三种方案!struts应用中重复提交的问题的三种解决方案例如增加一个用户 1、在增加前的action (actionA)中执行一个方法:saveToken(request)。然后转到页面...
  • QQ635785620
  • QQ635785620
  • 2011年04月26日 22:13
  • 782

解决表单重复提交的问题

现象描述最近在开发的时候,遇见这样的问题,当我们在网络状况不太好的情况、或者一个业务的后台业务逻辑执行时间较长的时候,用户可能会点击多次提交或刷新多次页面,导致表单数据被提交了多次,导致了可能出现莫名...
  • wtopps
  • wtopps
  • 2017年07月20日 20:16
  • 190

Struts2中防止表单重复提交的两种方式

防止表单重复提交,这是个很重要的知识点,而且很有用。当用户提交了一个表单,此时,地址栏显示的是处理这个表单的Action的地址,若此时刷新,则会重新发送一次表单数据,即又进行了一次提交,若这个Acti...
  • xiaomu709421487
  • xiaomu709421487
  • 2016年03月10日 15:11
  • 2464

struts2利用拦截器解决重复提交问题

Struts 2已经内置了能够防止用户重复提交同一个HTML表单的功能。它的工作原理:让服务器生成一个唯一记,并在服务器和表单里各保存一份这个标记的副本。此后,在用户提交表单的时候,表单里的标记将随着...
  • yuhui123999
  • yuhui123999
  • 2016年06月30日 21:09
  • 762

返回提交页面问题,重复提交问题解决方案

1.通过ajax提交表单数据 2.提交成功后通过替换当前连接,并重定向 解决代码如下    $.ajax({             cache: false,           ...
  • LUOCHENLONG
  • LUOCHENLONG
  • 2017年08月04日 14:54
  • 369

高并发下重复提交问题的处理

高并发下重复提交问题的解决方案
  • u011712163
  • u011712163
  • 2017年01月11日 16:34
  • 1322

前端防止重复提交场景

普通用户什么情况下会重复提交呢? (1)后端接口响应慢或者网速不好 (2)在提交页面提交后,重复刷新 针对情况一: 登录时,提交订单时 论坛里有很多无恶意的重复帖子 总结: 一是阻止回车提交表单,...
  • sixteen_cicle
  • sixteen_cicle
  • 2016年09月18日 10:38
  • 641
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Web应用中重复提交的问题的三种解决方案
举报原因:
原因补充:

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