Struts防止重复提交

机制:Token(令牌)机制

基本原理:客户端提交表单请求,服务器在处理请求之前,会判断请求中的Token值是否与当前会话中的Token值是否匹配,如果匹配,说明是第一次提交,请求成功。服务器在处理完请求发送给客户端之前,会生成新的Token值,并将该Token值替换会话中的旧Token值,然后服务器会将新的Token值发送给客户端;然后退回到先前页面,再次提交表单,由于Token值与新的Token值不匹配,会请求失败,这样做到防止重复提交;

客户端的Token值是表单中隐藏域(<input type="hiden" value="Token值"/>)的value属性值,value值是由sessionId和当前的时间Long值来生成,服务器端是在加载表单页面时生成;

相关标签 :防止刷新标签<s:token></s:token>(表单中)

                   默认拦截器栈:<interceptor-ref  name="defaultStack"/>(Struts2的配置文件中)

                   防止重复提交拦截器:<interceptor-ref  name="token"/>(Struts2的配置文件中)

                   请求失败跳转页面:<result name="invalid.token"></result>(Struts2的配置文件中)

                  

猜你喜欢

转载自ttdream.iteye.com/blog/2259871
今日推荐