Struts2 token的使用,避免表单重复提交

来源:互联网 发布:安装电视猫软件 编辑:程序博客网 时间:2024/05/16 01:19

防止表单重复提交的标签<s: token />在jsp页面的form里加上,在jsp页面加载时<s: token />产生一个GUID(Globally Unique Identifier,全局唯一标识符).
将GUID放到会话(session)中,在执行action之前,拦截器将会话token与请求token比较,如果两者相同,则将会话中的token删除并往下执行,否则向actionErrors加入错误信息.

struts2配置文件

<action name="xxx" class="xxx">
       <interceptor-ref name="token"/>  <!-- 拦截器 -->
       <interceptor-ref name="defaultStack"/>
       <result name="invalid.token" type="dispatcher" >/jsp/repeatRefresh.jsp</result>  <!-- 会话token与请求token不一致时的result -->
       <result name="input" type="dispatcher" >/jsp/input.jsp</result>
       <result name="success" type="dispatcher" >/jsp/success.jsp</result>
</action>