使用Session防止表单重复提交详解.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JavaWeb学习总结(十三)——使用Session防止表单重复提交 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交。 一、表单重复提交的常见应用场景 有如下的form.jsp页面 1 %@ page language=java import=java.util.* pageEncoding=UTF-8% 2 !DOCTYPE HTML 3 html 4 head 5 titleForm表单/title 6 /head 7 8 body 9 form action=${pageContext.request.contextPath}/servlet/DoFormServlet method=post 10 用户名:input type=text name=username 11 input type=submit value=提交 id=submit 12 /form 13 /body 14 /html   form表单提交到DoFormServlet进行处理 1 package xdp.gacl.session; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 9 public class DoFormServlet extends HttpServlet { 10 11 public void doGet(HttpServletRequest request, HttpServletResponse response) 12 throws ServletException, IOException { 13 //客户端是以UTF-8编码传输数据到服务器端的,所以需要设置服务器端以UTF-8的编码进行接收,否则对于中文数据就会产生乱码 14 request.setCharacterEncoding(UTF-8); 15 String userName = request.getParameter(username); 16 try { 17 //让当前的线程睡眠3秒钟,模拟网络延迟而导致表单重复提交的现象 18 Thread.sleep(3*1000); 19 } catch (InterruptedException e) { 20 e.printStackTrace(); 21 } 22 System.out.println(向数据库中插入数据:+userName); 23 } 24 25 public void doPost(HttpServletRequest request, HttpServletResponse response) 26 throws ServletException, IOException { 27 doGet(request, response); 28 } 29 30 }   如果没有进行form表单重复提交处理,那么在网络延迟的情况下下面的操作将会导致form表单重复提交多次 1.1、场景一:在网络延迟的情况下让用户有时间点击多次submit按钮导致表单重复提交   演示动画如下所示: ?1.2、场景二:表单提交后用户点击【刷新】按钮导致表单重复提交 演示动画如下所示:   点击浏览器的刷新按钮,就是把浏览器上次做的事情再做一次,因为这样也会导致表单重复提交。 1.3、场景三:用户提交表单后,点击浏览器的【后退】按钮回退到表单页面后进行再次提交 演示动画如下所示: 二、利用JavaScript防止表单重复提交   既然存在上述所说的表单重复提交问题,那么我们就要想办法解决,比较常用的方法是采用JavaScript来防止表单重复提交,具体做法如下: 修改form.jsp页面,添加如下

文档评论(0)

335415 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档