解决重复提交表单问题,利用token拦截器实现
·令牌生成流程
浏览器发出请求,服务器检查界面上是否有token标签。如果有,向session中添加一个struts.token属性(如果已经有则覆盖),来保存token id,并将jsp页面的token转换成token id回发到浏览器,在jsp页面也生成一个token id,这两个值是相同的唯一的值,通过验证这两个值是否相同来判断是否重复提交
·令牌验证流程
浏览器触发action发出请求,服务器根据struts2配置文件判断是否拦截该方法,拦截该方法后,判断提交的token Id和session中保存的token id是否相等,如果相等,则清空session中的token id,如果不同,根据配置跳转到指定页面
·实现令牌验证的步骤
1.jsp页面加入标签支持
2.表单中加入<s:token/>
3.struts.xml中需要验证重复提交的action中加入验证拦截器
index.jsp
error.jsp
LoginAction.java
struts.xml
在连续提交或者回退到之前重复提交时,便会触发拦截跳转到error页面
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!