Java笔记--Session:避免表单的重复提交
来源:互联网 发布:交通事故数据统计最新 编辑:程序博客网 时间:2024/06/05 17:38
关于表单的重复提交,其实是围绕“请求”展开,请求多次便是重复提交了
(一)表单重复提交情况:
a.表单提交“请求”到servlet后,servlet再将“请求”转发到一个jsp页面,在响应页面点击刷新。分析:点击刷新时,地址栏中的URL还是原来的请求输入的地址,点击刷新后,就是发出再一次的请求,所以表单重复提交。b.当有网络延迟,或者线程阻塞的情况下,在响应页面没有到达时,重复点击提交按钮。分析:很明显,浏览器发出了多次请求,表单重复提交。c.在响应页面,点击返回,再点击“提交”。分析:和a其实是一个效果
(二)如何避免表单的重复提交
a.在表单中:
<body> <% //在原表单页面,生成一个token随机值, String tokenValue=new Date().getTime() +""; %><form method="post" action="/SuccessServlet"> <% //把token放入session中 session.setAttribute("token",tokenValue); %> <!-- 把token放入隐藏域中 --><input type="hidden" name="token" value=<%=tokenValue %>/> name:<input type="text" name="name"/> <input type="submit" value="提交"/></form></body>
b.在servlet中:
//表单的token提交到servlet时,检查标记是否和已经存在的session中的token值一致, //若一致,则相应请求,并销毁标记,若不一致或者没有标记则直接相应提示信息----表单重复提交 HttpSession session = request.getSession(); Object token = session.getAttribute("token"); String tokenValue = request.getParameter("token"); if(token.equals(tokenValue) &&token != null){ session.removeAttribute("token"); }else{ response.sendRedirect(request.getContextPath()+"/error.jsp"); }
0 0
- Java笔记--Session:避免表单的重复提交
- session的典型案例二:避免表单的重复提交
- 避免表单的重复提交
- 避免表单的重复提交
- 避免表单重复提交
- 避免表单重复提交
- 避免表单重复提交
- 避免表单重复提交
- 避免表单重复提交
- 如何避免表单的重复提交
- 如何避免表单的重复提交
- php-- 避免表单的重复提交
- SpringMVC避免表单的重复提交解决办法
- JavaWeb避免表单的重复提交
- 在客户端避免表单的重复提交
- 避免表单重复提交--用session实现token机制
- java Session防止表单重复提交
- session的使用:防止表单重复提交
- Swift语法_Unicode
- ubuntu使用技巧——如何编译C++和C语言的使用程序
- UILocalNotification
- session和cookie的区别
- ORACLE PILE 与 SPFILE
- Java笔记--Session:避免表单的重复提交
- Thinkphp结合PHPMailer发邮件
- 关于函数strtok和strtok_r的使用要点和实现原理(一)
- 深入了解FMDB<一>
- The Ins and Outs of Gradle(Gradle的来龙去脉)---- 学习笔记 1
- java word转pdf 方式 大家一起来优化
- BeanCreationException及java.lang.IllegalArgumentException: Page directive: invalid value for import
- 2016第一发
- ImageLoader: java.io.FileNotFoundException: /storage/sdcard0/Android/data/[...]/cache/uil-images/jo