Sturts2中的Token机制

关于struts-token拦截器的官方解释,确保每个请求只有一个token被处理,可以确保后退按钮和双击操作不会引起不必要的负面影响。

按我的理解,token的作用就是防止重复提交,(重复提交本身就是一个误操作,重复提交会导致程序中的逻辑出错),

原理:服务端处理客户端请求之前,会生成一个token保存在session中,并发送到客户端。客户端提交请求时,将token发送到服务端,在struts中通过拦截器对token与session中的token进行验证,如果相等则说明没有重复提交,拦截器放行继续执行后面的操作;如果不相等则说明重复提交,显示错误信息。请求处理完成后,在返回客户端之前,会生成一个新的token替换原来的token,用于下一次token验证。

如图为一次请求的token验证流程:

 

重复提交:

第一次请求时的token:

处理请求完成后:(session中原来的token被清除了,但在渲染客户端之前还会生成一个token)

渲染完成后,打开页面源代码查看

当重复提交(返回/刷新/双击等)时,由于token不一致阻止请求处理。

 

更多相关知识比如并发token验证请看:

Blog:http://www.cnblogs.com/withyou/p/3169728.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值