8防止重复提交

struts2防止重复提交
Struts2中防止重复提交需要在<action >...</action>中增加下面的配置:
//使用系统的token拦截器
<interceptor-ref name="token"/>
//使用系统的默认拦截器
<interceptor-ref name="defaultStack"/> 
//如果是重复提交需要转向的页面
<result name="invalid.token" >/error_chongfu.jsp</result>


例如:
<action name="testAdd" class="testAction" method="testAdd"> 
<interceptor-ref name="token"/>
<interceptor-ref name="defaultStack"/> 
<result name="invalid.token" >/error.jsp</result>


<result name="success">/index.jsp</result>
<result name="error">/error.jsp</result>
</action>


然后再JSP导入struts2的标签库:<%@taglib prefix="s" uri="/struts-tags"%>,并在<form>...</form>中放置<s:token />。
其中<s:token />标签用来生成一个唯一的隐藏token标识并将此标识放到session中,在运行的时候生成的内容如下:
<input type="hidden" name="struts.token" value="C21ZWHEH0Q4B6FY15ZO5BFM1I9W8SIQH" />
例如:
<%@page contentType="text/html; charset=utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<form id="productForm" method="post" action="${ctx }/testAdd.action">
请输入用户名称:<input type="text" name="roleName" value="mmmmm">
<s:token />
<input type="submit" value="提交">
</form>
</html>
这样当我们提交表单时就会有struts2的token拦截器拦截,token拦截器将会话token与请求token比较,如果重复提交则返回invalid.token结果并转到相应的页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值