Struts2token防止重复提交引用csdn…

来源:互联网 发布:编程作业代写 编辑:程序博客网 时间:2024/06/14 21:16
Token Interceptor 
This page last changed on May 19, 2006 byscud. 
这 个拦截器可以保证一个令牌对应一个请求。确保后退按钮和两次提交不会产生不希望的效果。例如你可以使用这个来防止粗心的用户在在线商店点了两下"结帐"按钮。这个拦截器使用了非常简单的机制来处理非法令牌:返回一个invliad.token的结果,这样你就可以在action配置中做映射了。一个复杂一些的实现是TokenSessionStoreInterceptor, 可以在发现非法令牌时提供更好的处理逻辑。

注意: 为了设置表单的令牌,你必须使用token标签。这个标签放在表单中,并且这个表单是提交到受这个拦截器保护的action:任何不提供令牌(使用token标签产生的)的请求将被处理为非法请求

国际化注意事项:这个拦截器用下面的键作为错误信息。

注意: 因为这个拦截器是扩展于MethodFilterInterceptor,所以可以决定在action中的哪些方法上应用它。更多信息参见MethodFilterInterceptor 

参数


扩展
一般情况下用户不必扩展这个拦截器,TokenSessionStoreInterceptor扩展了这个拦截器。其中的protected方法handleInvalidToken和handleValidToken可以用来处理更有意义的逻辑,就像TokenSessionStoreInterceptor做的那样。

例子
<action name="someAction"class="com.examples.SomeAction">
  <interceptor-refname="token"/>
  <interceptor-refname="basicStack"/>
  <resultname="success">good_result.ftl</result>
</action>

<-- 在这个例子中,action的myMethod方法不会做令牌检查-->
<action name="someAction"class="com.examples.SomeAction">
  <interceptor-refname="token">
  <paramname="excludeMethods">myMethod</param>
  </interceptor-refname="token"/>
  <interceptor-refname="basicStack"/>
  <resultname="success">good_result.ftl</result>
</action>
0 0
原创粉丝点击