使用拦截器防止表单重复提交

4 篇文章 0 订阅
1 篇文章 0 订阅
 

在jsp页面上使用标签<s:token />,该标签生成一个隐藏域标签,其值为一个随机的
字符串(令牌值),在生成这个令牌值的时候,同时还将令牌值放入到了session中。当
第一次提交数据的时候,隐藏域中的值被提交到 action,由于为这个 action 配置了拦截
器,此时 token拦截器就会拦截请求,将提交上来的 token 值与 session 中的 token 值
是否一致,如果一致,则调用 execute 方法,同时将 session 中的 token 值清除掉。此
时如果后退回去,再次提交,隐藏域中的 token 值再次提交,请求依然会被拦截器拦截,
拦截器就会检查 token值是否与 session中存放的值是否一致,而此时 session中已经没
有token的值了,此时拦截器就会返回名称为“invalid.token”的视图。


<interceptor-ref name="defaultStack" />  必须
<interceptor-ref name="token" />
<result name="invalid.token">/error.jsp</result>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值