导致表单重复提交的原因是:第一次提交的表单会被缓存到内存中,直到页面下次提交或页面关闭或转向其他页面时才消失。在自调用返回时,内存中的数据依然在,这时页面中的判断提交的代码依然可以检测到提交的值,顾会产生重复提交的效果。 解决方法 Ⅰ重定向,页面提交后转到另一个页面而不是本页面 Ⅱ提交表单后提交按钮 ...
分类:
其他好文 时间:
2017-07-10 00:37:30
阅读次数:
311
表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如: 点击提交按钮两次。 点击刷新按钮。 使用浏览器后退按钮重复之前的操作,导致重复提交表单。 使用浏览器历史记录重复提交表单。 浏览器重复的HTTP请求。 几种防止表单重复提交的方法 禁掉提交 ...
分类:
其他好文 时间:
2017-06-26 18:07:47
阅读次数:
147
防止表单重复提交(拦截器) 1、回顾之前的解决办法: 2、Struts2中的解决办法: 2.1、使用重定向 <result type="redirect">/success.jsp</result> 遗留的问题:防不住后退,再提交。 2.2、使用<s:token/>生成令牌配合token拦截器 1 ...
分类:
其他好文 时间:
2017-06-22 01:18:21
阅读次数:
140
问题背景:当在注册时,触发了一次注册提交后,出现网络延迟或卡顿时,用户就会下意识的狂点注册按钮,这时问题就来了,多次提交后后台直接将提交的数据在数据库进行保存。 这其实就是个非法操作。 -->解决方案: 生成一个令牌。 在session域中保存令牌。 在表单中隐藏字段保存令牌。 当表单提交时,在处理 ...
分类:
其他好文 时间:
2017-05-27 20:02:54
阅读次数:
230
Token,就是令牌,最大的特点就是随机性。 Token一般用在两个地方: 1)防止表单重复提交、 2)anti csrf攻击(跨站点请求伪造)。 两者在原理上都是通过session token来实现的。 当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中 ...
分类:
其他好文 时间:
2017-05-22 11:56:54
阅读次数:
179
钝化指将HttpSession对象序列化到硬盘中,一般钝化发生在服务器停止,服务器停止时会自动将HttpSession对象序列化到硬盘,这个事我们称为钝化。活化将硬盘中HttpSession对象加载进内存中,一般在服务器启动时,会自动将硬盘中HttpSession对象重新加载进内存,这一过程我们成为..
分类:
其他好文 时间:
2017-05-04 16:18:07
阅读次数:
346
在服务器端生成一个唯一的随机标识号,专业术语称为Token(令牌),同时在当前用户的Session域中保存这个Token。然后将Token发送到客户端的Form表单中,在Form表单中使用隐藏域来存储这个Token,表单提交的时候连同这个Token一起提交到服务器端,然后在服务器端判断客户端提交上来 ...
分类:
其他好文 时间:
2017-04-14 20:32:26
阅读次数:
236
方法一:用js控制表单提交 》但是容易在客户端被篡改代码,还是要加的 方法二:session 先给每一个表带上唯一的标志,再把标志存入session 当session中标志和表上标志都不为空 ,且相等的情况下,提交表单成功,否则失败 下面是demo 目的:访问FormServlet >加上标记后,转 ...
分类:
其他好文 时间:
2017-04-10 16:42:22
阅读次数:
226
跨浏览器添加事件 //跨浏览器添加事件 function addEvent(obj,type,fn){ if(obj.addEventListener){ obj.addEventListener(type,fn,false); }else if(obj.attachEvent){//IE obj. ...
分类:
Web程序 时间:
2017-04-08 16:00:46
阅读次数:
259
一、UI标签 1.1、struts2中UI标签的优势 自动的数据回显和错误提示功能 自带的简单样式和排版 1.2、UI案例 结果: 1.3、UI标签的主题 1.3.1、struts2中默认的主题 默认主题的名称是XHTML,都是在struts的默认属性文件中定义着:default.propertie ...
分类:
其他好文 时间:
2017-04-05 20:10:33
阅读次数:
142