struts2
使用拦截器来检查表单是否重复提交,它采用同步令牌的方式来实现对表单重复提交的判断。
首先需要在表单的form标签中使用
<s:token></s:token>用这个标签会在form中产生两个hide的文本域,并且每次加载页面都会产生不同的token ID
<s:token>
标签创建一个新的令牌值,并用你所指定的令牌名把令牌保存到
session
中。而这个令牌值是随即产生的经过加密的字符序列,不会重复。
其次需要为
action
配置
TokenInterceptor
或者
TokenSessionStoreInterceptor
拦截器。这两个拦截器都已经在
struts-default.xml
中定义,但没有包含在
defaultStack
拦截器栈中。
配置实例如下:
<
action
name
=
"register"
class
=
"com.xxx.xxx.RegisterAction"
>
<!--
配置异常映射,当
RegisterAction
抛出
Exception
异常时,向用户显示
error.jsp
页面
-->
<
exception-mapping
result
=
"error"
exception
=
"java.lang.Exception"
/>
<
result name="invalid.token">/WEB-INF/pages/register.jsp</result>
<
result
name
=
"input"
>
/WEB-INF/pages/register.jsp
</
result
>
<
result
name
=
"success"
>
/WEB-INF/pages/success.jsp
</
result
>
<
result
name
=
"error"
>
/WEB-INF/pages/error.jsp
</
result
>
<
interceptor-ref
name
=
"defaultStack"
> <!--有时候需要配上,否则参数无法绑定到action的属性上-->
<
param
name
=
"workflow.excludeMethods"
>
default
</
param
>
</
interceptor-ref
>
<interceptor-ref name="token">
<param name="excludeMethods">default</param>
</interceptor-ref>
</
action
>
注:
excludeMethods
指定要排除的方法。
在
register.jsp
页面中添加
action
级别的错误信息显示的标签:
<
s:actionerror
/>
在
form
中添加
<s:token>
标签:
<s:token></s:token>
最好为在资源文件中设置键
struts.messages.invalid.token
的本地化消息。比如:struts.messages.invalid.token=
您已经提交了表单,请不要重复提交。
分享到:
相关推荐
struts2中对表单重复提交的处理方法;包括处理两种典型的表单重复提交的思路和方法
当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会再次出现表单重复提交的问题。...
这里是Struts2 中放置表单重复提交的例子。
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
Struts2文件上传下载和表单重复提交问题
防止表单重复提交 token eclipse项目
Struts表单重复提交问题 资源源于不但搜索,自由源于不但努力
运用struts2解决表单的重复提交问题
struts2防止表单重复提交--重定向
struts token机制解决表单重复提交
【原创】Struts2防止表单重复提交.doc
主要讲解了在structs怎样通过Token令牌解决表单重复提交的问题。附带了擦参考项目。
详细介绍struts+token机制解决表单重复提交问题。附带相关代码
Servlet、Struts、SpringMVC对于表单重复提交的解决方案
struts2防止重复登录,分享给大家学习一下。
这个示例简单易懂,就是利用token过滤器
Struts2.0深入学习 命名空间,模型驱动,表单重复提交实例 博文链接:https://zmx.iteye.com/blog/463118
struts数据回显、模型驱动、防止表单重复提交
详解struts2的token机制和cookie来防止表单重复提交 今天在做一个投票系统时要实现防止表单重复提交! 当时就想到了用struts2提供的token机制 struts2的token机制防止表单重复提交: 首先需要在提交的jsp页面(要...
SSH笔记-数据验证、上传下载、避免表单重复提交、自定义拦截器