struts利用Token(令牌)防止用户重复提交(转载)
来源:互联网 发布:在线考试系统源码出售 编辑:程序博客网 时间:2024/05/16 17:55
struts利用Token(令牌)防止用户重复提交(原创)
在我们的开发中经常遇到需要防止用户重复提交的情况,如果你用了struts,恭喜你,因为struts已经给你做好了,你只要会调用即可:
在跳转到页面前的action方法中写:
以上的this.saveToken(request),会在将要跳转到的"addUser.jsp"页面上生成一个
<input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="38912d4c87ce950cf6c159411c0a4966">
的隐藏字段,value值是随机生成的,并且同时把该属性和值放到Session中。
当用户填写完信息第一次提交,调用"addUser"方法时,咱们看一下,其中的"this.isTokenValid(request,true)"都做了些什么:
把从页面传来的org.apache.struts.taglib.html.TOKEN的值和session中的org.apache.struts.taglib.html.TOKEN值比较,
如果值是相等的(这时的值是相等),会清除session中的该令牌。继续执行bo.addUser() 后跳转到"addUser.jsp"页面。
当用户后退到该页面,点提交,程序依然会对从页面来的与session中的org.apache.struts.taglib.html.TOKEN的值进行比较,由于在第一次提交时已经清除了该令牌,所以struts就知道这时的用户
正在进行重复提交,故执行:
request.setAttribute("info", "请不要刷新!");
在跳转到页面前的action方法中写:
public ActionForward toAddUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.saveToken(request);
return mapping.findForward("addUser");
} 以上的this.saveToken(request),会在将要跳转到的"addUser.jsp"页面上生成一个
<input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="38912d4c87ce950cf6c159411c0a4966">
的隐藏字段,value值是随机生成的,并且同时把该属性和值放到Session中。
public ActionForward addUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
if( ! this.isTokenValid(request,true)){
request.setAttribute("info", "请不要刷新!");
return mapping.findForward("backInfo");
}
bo.addUser() ;
return mapping.findForward("addUser");
} 当用户填写完信息第一次提交,调用"addUser"方法时,咱们看一下,其中的"this.isTokenValid(request,true)"都做了些什么:
把从页面传来的org.apache.struts.taglib.html.TOKEN的值和session中的org.apache.struts.taglib.html.TOKEN值比较,
如果值是相等的(这时的值是相等),会清除session中的该令牌。继续执行bo.addUser() 后跳转到"addUser.jsp"页面。
当用户后退到该页面,点提交,程序依然会对从页面来的与session中的org.apache.struts.taglib.html.TOKEN的值进行比较,由于在第一次提交时已经清除了该令牌,所以struts就知道这时的用户
正在进行重复提交,故执行:
request.setAttribute("info", "请不要刷新!");
return mapping.findForward("backInfo");
- struts利用Token(令牌)防止用户重复提交
- struts利用Token(令牌)防止用户重复提交
- struts利用Token(令牌)防止用户重复提交(转载)
- 如何防止表单重复提交(token令牌)
- struts中的Token(令牌)解决重复提交问题
- STRUTS中利用同步令牌(Token)解决重复提交的问题(转载)
- 利用Token防止重复提交(Struts框架)
- 利用Token防止重复提交(Struts框架)
- 利用Token防止重复提交(Struts框架)
- 《struts---利用Token防止表单重复提交》
- Struts令牌防止重复提交!
- Struts令牌防止重复提交
- token令牌为什么会防止重复提交?
- spring token 令牌 防止表单重复提交
- Struts防止表单重复提交(转载)
- struts--token防止表单重复提交(源码分析)
- Struts令牌防止重复提交(转贴)!
- Struts令牌防止重复提交(转贴)
- PrintStream类和PrintWriter类(转)
- 函数指针的应用(转)
- c++信息管理系统模板
- 配制Spring事务和JdbcTemplate使用。(转)
- Spring JDBC framework(转)
- struts利用Token(令牌)防止用户重复提交(转载)
- c++公司员工信息管理
- Apache的JK插件
- 整合apache2.2.x和tomcat5.5(转)
- 一劳永逸--批处理命令(一)(转)
- 让CIH永不发作--批处理命令(二)(转)
- 大学期间关于课外学习的意见
- 一款很好用的网络U盘
- 深入理解计算机系统(EN).pdf