使用Session防止表单重复提交.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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=post10 用户名:input type=text name=username11 input type=submit value=提交 id=submit12 /form13 /body14 /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页面,添加如下的JavaScript代码来防止表单重复提交 1 %@ page language=java import=java.util.* pageEncoding=UTF-8% 2 !DOCTYPE HTML 3 html 4 head 5 titleForm表单/title 6 script type=text/javascript 7 var isCommitted = false;//表单是否已经提交标识,默认为false 8 function dosubmit(){ 9 if(is

文档评论(0)

麻将 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档