机制: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的配置文件中)
??????????????????
?
?
?
?
原文:http://ttdream.iteye.com/blog/2259871