Struts2的令牌机制

版权声明:本文为博主原创文章,版权归原作者小思所有,转载或者引用本文内容请注明来源及原作者,https://blog.csdn.net/zeal9s/ https://blog.csdn.net/zeal9s/article/details/81536469

防止表单进行多次重复的提交

1.在含有不能重复提交的jsp页面顶部添加s标签库

<%@ taglib uri="/struts-tags"  prefix="s"%>

2.在表单里面加上
这里写图片描述

<s:token></s:token>
<INPUT value=立即注册 type="submit">

在表单提交的submit附近写这样就有特定的值保存在此页面,并且保存在session中。
这里写图片描述
token拦截器会判断客户端form提交的token和session中保存的session是否equals。如果equals则执行Action,返回正确应该执行的jsp页面。否则拦截器直接返回invaid.token结果,就是返回错误页面,Action对应的方法也不会执行。
例如:没有重复提交表单就到success.jsp,重复提交就到error.jsp
3.struts.xml的配置

<action name="addUsersAction_*" class="com.sw.action.AddUsersAction" method="{1}">
            <interceptor-ref name="defaultStack"></interceptor-ref>
            <!-- 使用令牌拦截器 -->
            <interceptor-ref name="token"></interceptor-ref>
            <!-- 正常的跳转 -->
            <result>/success.jsp</result>
            <!-- 重复提交表单的错误的跳转 -->
            <result name="invalid.token">/error.jsp</result>
</action>

说在最后的话:编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

猜你喜欢

转载自blog.csdn.net/zeal9s/article/details/81536469
今日推荐