Struts2中的拦截器防止重复提交

Struts2防止表单重复提交登录,可以使用两种拦截器

原理:

首先在提交表单中须加上<s:token></s:token>一个令牌。这个是服务器给你的一个令牌。实际上他是服务器产生的session ID,把这个session ID作为这个令牌的值,存到了你的客户端,将来你的客户端拿着这个令牌找服务器匹配,第一次匹配成功后,服务器会将session ID清空,然后下次再提交过来的时候就不会匹配成功了。

1.token拦截器

在struts.xml文件中:配置拦截器

<result name="invalid.token">/loginFail.jsp</result><!-- 发现重复提交,则返回一个invalid.token的结果 -->
<interceptor-ref name="token"></interceptor-ref><!-- 如果发现重复提交,则为用户返回一个错误的页面提示 -->

<interceptor-ref name="defaultStack"></interceptor-ref>

2.tokenSession拦截器

在struts.xml文件中:配置拦截器

<result name="success">/LoginSuc.jsp</result>

<interceptor-ref name="tokenSession"></interceptor-ref><!-- 发现重复提交,则返回一个success的结果 -->

<interceptor-ref name="defaultStack"></interceptor-ref>

你可能感兴趣的:(Struts2中的拦截器防止重复提交)