原理:
防止用户多次提交表单,在用户请求时struts2使用拦截器设一个值,在页面中使用token标签进行获取,当用户进行提交时,则会将token提交,系统会进行比对,相等则表示第一次提交,系统会将自身值修改,再次提交则不相同,不允许提交。
实现:
1、struts.xml
<package name="itcast" namespace="/test" extends="struts-default"> <action name="itcast" class="cn.itcsst.action.PersonAction"> <interceptor-ref name="defaultStack"/> <interceptor-ref name="token"/> <!--struts2已经实现的拦截器--> <result name="invalid.token">/index.jsp</result> <!--重复提交返回视图--> <result>/WEB-INF/page/message.jsp</result> </action> </package>
2、页面
<body>
<s:form action="itcast" namespace="/test" method="post">
姓名:<s:textfield name="name"/><s:token></s:token>
<input type="submit" value="发送"/>
</s:form>
</body>