struts2的防止表单重复提交的令牌机制
2013-07-22 09:16
357 查看
struts2 提供 令牌拦截器 TokenInterceptor
主要作用 : 防止表单的重复提交
重复提交表单坏处: 投票系统刷票, 论坛重复注册(刷贴子) ----- 添加操作,重复向数据库插入数据
步骤
1、 在form中使用 <s:token> 作用: 生成随机UUID, 生成<inputhidden>元素, 将UUID 放入Session
2、 struts2内部 已经提供拦截器
<interceptor name="token"class="org.apache.struts2.interceptor.TokenInterceptor"/>
作用:比较请求中令牌号 和 Session中令牌号是否一致,如果不一致请求无效,跳转invalid.token页面
token拦截器不在 defaultStack中,因此要在注册之前加上defaultStack拦截器,不然默认的拦截器 就不能用了
<interceptor-refname="token">
<!-- 配置token拦截器拦截哪些方法 -->
<paramname="includeMethods">save</param>
</interceptor-ref>
3、 在struts.xml 对Action 应用token拦截器
<action name="regist"class="cn.itcast.action.RegistAction">
<result>/index.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-refname="token"></interceptor-ref>
</action>
4、 配置错误跳转页面
<resultname="invalid.token">/token_error.jsp</result>
在错误页面中 <s:actionerror> 去显示默认的提示信息
通过设置国际化文件 struts.messages.invalid.token=您已经重复提交表单,请刷新后重试---- 修改默认信息
该信息所在位置struts2-core-2.3.3.jar包下\org\apache\struts2\struts-messages.properties文件
主要作用 : 防止表单的重复提交
重复提交表单坏处: 投票系统刷票, 论坛重复注册(刷贴子) ----- 添加操作,重复向数据库插入数据
步骤
1、 在form中使用 <s:token> 作用: 生成随机UUID, 生成<inputhidden>元素, 将UUID 放入Session
2、 struts2内部 已经提供拦截器
<interceptor name="token"class="org.apache.struts2.interceptor.TokenInterceptor"/>
作用:比较请求中令牌号 和 Session中令牌号是否一致,如果不一致请求无效,跳转invalid.token页面
token拦截器不在 defaultStack中,因此要在注册之前加上defaultStack拦截器,不然默认的拦截器 就不能用了
<interceptor-refname="token">
<!-- 配置token拦截器拦截哪些方法 -->
<paramname="includeMethods">save</param>
</interceptor-ref>
3、 在struts.xml 对Action 应用token拦截器
<action name="regist"class="cn.itcast.action.RegistAction">
<result>/index.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-refname="token"></interceptor-ref>
</action>
4、 配置错误跳转页面
<resultname="invalid.token">/token_error.jsp</result>
在错误页面中 <s:actionerror> 去显示默认的提示信息
通过设置国际化文件 struts.messages.invalid.token=您已经重复提交表单,请刷新后重试---- 修改默认信息
该信息所在位置struts2-core-2.3.3.jar包下\org\apache\struts2\struts-messages.properties文件
相关文章推荐
- Struts2 令牌机制防止 表单重复提交
- 不用struts2的token机制,手动防止表单数据重复提交
- 基于struts2的令牌拦截器,防止表单重复提交
- 使用Struts2的token机制和Cookie来防止表单重复提交
- 使用struts2的token机制和cookie来防止表单重复提交
- 不用struts2的token机制,手动防止表单数据重复提交
- 使用struts2的token机制和cookie来防止表单重复提交
- Session Token机制-Struts2中防止表单重复提交的两种方式(一)
- 不用struts2的token机制,手动防止表单数据重复提交
- 使用struts2的token机制和cookie来防止表单重复提交
- struts2-令牌拦截器防止表单重复提交
- 详解struts2的token机制和cookie来防止表单重复提交
- Java 令牌机制 防止表单重复提交
- struts2防止表单重复提交的解决方案
- 如何防止表单重复提交(token令牌)
- JavaWeb 如何防止表单重复提交 - 使用Token,令牌
- Struts2防止表单重复提交
- Java 使用Token令牌防止表单重复提交
- Struts2如何防止表单重复提交
- 7、struts2 案例( 模型驱动、 防止表单重复提交--拦截器 、数据回显 、值栈 、 OGNL表达式综合运用)