重复提交解决方案
来源:互联网 发布:软件测试报告模板范文 编辑:程序博客网 时间:2024/05/16 06:53
Struts的Token机制能够很好的解决表单重复提交的问题,基本原理是:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。
这时其实也就是两点,第一:你需要在请求中有这个令牌值,请求中的令牌值如何保存,其实就和我们平时在页面中保存一些信息是一样的,通过隐藏字段来保存,保存的形式如:〈input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="6aa35341f25184fd996c4c918255c3ae"〉,这个value是TokenProcessor类中的generateToken()获得的,是根据当前用户的session id和当前时间的long值来计算的。第二:在客户端提交后,我们要根据判断在请求中包含的值是否和服务器的令牌一致,因为服务器每次提交都会生成新的Token,所以,如果是重复提交,客户端的Token值和服务器端的Token值就会不一致。
这时其实也就是两点,第一:你需要在请求中有这个令牌值,请求中的令牌值如何保存,其实就和我们平时在页面中保存一些信息是一样的,通过隐藏字段来保存,保存的形式如:〈input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="6aa35341f25184fd996c4c918255c3ae"〉,这个value是TokenProcessor类中的generateToken()获得的,是根据当前用户的session id和当前时间的long值来计算的。第二:在客户端提交后,我们要根据判断在请求中包含的值是否和服务器的令牌一致,因为服务器每次提交都会生成新的Token,所以,如果是重复提交,客户端的Token值和服务器端的Token值就会不一致。
有时间我在贴代码上来。。。
- 重复提交解决方案
- 表单重复提交解决方案
- 页面内容重复提交解决方案
- 防止重复提交的解决方案(2)
- 防止重复提交的解决方案(1)
- 网页重复提交,使用EXT解决方案
- 用户重复提交的三种解决方案
- struts2 防止重复提交的解决方案
- .NET避免重复提交的解决方案
- 关于刷新重复提交问题的解决方案
- jsp页面防止刷新重复提交解决方案
- jsp页面防止刷新重复提交解决方案 .
- Struts1防止页面重复提交解决方案
- struts2防止页面重复提交的解决方案
- jsp页面防止刷新重复提交解决方案
- struts2防止表单重复提交的解决方案
- struts2防止表单重复提交的解决方案
- struts2防止表单重复提交的解决方案
- RadioButtonList专题
- spring加载配置文件三办法
- linux 旧信号新计时器实例
- Vista
- PL/SQL DEVELOPER 基本用法详解(转)
- 重复提交解决方案
- gettext简介
- 在web客户端生成word文件
- Eclipse常用快捷键小结
- My God!--如此登陆校验码
- Spring的环境配置问题
- 浅谈Excel报表在Java程序中的应用-POI
- 调试oracle存储过程
- oracle 常见问题