设为首页 加入收藏

TOP

Struts2 防止表单的重复提交token
2015-02-02 14:32:32 来源: 作者: 【 】 浏览:11
Tags:Struts2 防止 表单 重复 提交 token

一、简介
Struts2使用token拦截器来检查表单是否重复提交,采用的是同步令牌的方式。


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


实现方法:


1)token
token拦截器进行拦截,如果为重复请求,就冲定向到名为invalid.token的Result。
2)tokenSession
tokenSession拦截器与token拦截器唯一的不同是在判断某个请求为重复请求之后,并不是立即重定向到名为invalid.token的Result,而是先阻塞这个重复请求,直到浏览器响应最初的正常请求,然后就可以跳转到处理正常请求后的Result了


二、token标签



? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ? /index.jsp? ? ? ? ?
? ? ? ? ? ? /welcome.jsp
? ? ? ?


输入index.jsp



? ?
? ?
? ?
? ?
? ?
? ?


Action没有什么特殊的,为了让其运行时间久点,方便重复提交,


public String execute() throws Exception {
? ? ? ? Thread.sleep(2000); // to simulate processing time
? ? ? ? return SUCCESS;
? ? }


调试问题:token标签好像没起什么作用。


这个应该是tomcat部署的时候不正常造成的,重新部署,确保其部署时候无错误。


三、tokenSession方式

? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ? /welcome.jsp
?


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Lua基础字符串操作 下一篇Struts2 request_locale国际化介绍

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: