struts2令牌机制

长平狐 发布于 2013/01/06 11:32
阅读 362
收藏 0

防止刷新提交页面,数据重复保存

在jsp页面的form里面加上 
注意:要先访问到这个jsp页面,来给token初始的值,这样当你提交的时候,才能匹配上

刚进入jsp页面的时候,struts2会生成一个tokenid的字符串,然后存入session。当点击提交按钮的时候,struts2把页面 的tokenid回传到struts2的拦截器里,看看是否一样,一样的话,就在给tokenid赋个新值,然后传回表单,当再点击提交或者刷新的时 候,又执行上面的过程,结果session中的tokenid和表单中的不一样,就出错

< action  name ="form提交的action"   class ="xxx" >
       
< interceptor-ref  name ="token" />
        < interceptor-ref  name ="defaultStack" />
        < result  name ="invalid.token"  type ="dispatcher"   > /jsp/repeatRefresh.jsp </ result >
        < result  name ="input"  type ="dispatcher"   > /jsp/Person.jsp </ result >
        < result  name ="success"  type ="dispatcher"   > /jsp/Person.jsp </ result >
</ action >

上面的invalid.token默认是不一致时候的result,这样就返回到repeatRefresh.jsp页面,在这里给出提示,比如:不能重复提交等等 
 别忘了在页面的form里加上 <s:token > </s:token>,可以查看源代码,就能找到tokenid的值


原文链接:http://blog.csdn.net/sd0902/article/details/8442343
加载中
返回顶部
顶部