当前位置: 首页 > news >正文

天津重型网站建设风格电商网站链接买卖

天津重型网站建设风格,电商网站链接买卖,天津建设工程信息网怎么报名的,东莞市做网站的公司哪家好1. 表单重复提交原因 当用户提交完请求,浏览器会记录最后一次请求的全部信息。用户按下功能键F5,就会发起浏览器记录的最后一次请求。如果最后一次请求为添加操作,那么此时刷新按钮就会再次提交数据,造成表单重复提交。 2. 表单…

1. 表单重复提交原因

  • 当用户提交完请求,浏览器会记录最后一次请求的全部信息。用户按下功能键F5,就会发起浏览器记录的最后一次请求。如果最后一次请求为添加操作,那么此时刷新按钮就会再次提交数据,造成表单重复提交。

2. 表单重复提交的三种常见情况

  1. 提交完表单。服务器使用请求转来进行页面跳转。这个时候,用户按下功能键F5,就会发起最后一次的请求。造成表单重复提交问题。解决方法:使用重定向来进行跳转
  2. 用户正常提交服务器,但是由于网络延迟等原因,迟迟未收到服务器的响应,这个时候,用户以为提交失败,就会着急,然后多点了几次提交操作,也会造成表单重复提交。解决方法:使用验证码
  3. 用户正常提交服务器。服务器也没有延迟,但是提交完成后,用户回退浏览器。重新提交。也会造成表单重复提交。解决方法:使用验证码

3. 验证码原理

  • 用户第一次通过浏览器访问服务器的表单页面时候,会生成一个随机的验证码并保存在session中,之后为验证码生成一个验证码图片回显在表单页面中
  • 用户在访问到的页面中输入用户信息和验证码并发起请求,在后端程序中先回去session中的验证码并删除Session中的验证码(因为验证码只用一次),之后获取表单项信息,在比较表单项的验证码和获取到的Session验证码是否一致。如果相同则允许操作,不相等则阻止操作。
    • 第一次发起请求,表单项的验证码和获取到的Session验证码相等都为abcde,所以允许登录
    • 再次发起一个新的请求,由于Session的验证码已经删除了为null,表单项的验证码还为abcde,不相等所以不允许登录。

在这里插入图片描述

4. 谷歌验证码的使用步骤

说明

  • 验证码这种需求是很常见的业务,所以一般也不需要自己写代码,可以使用第三方封装好的验证码,比如:谷歌kaptcha图片验证码。
  • 以下步骤是在学习javaWeb时候的步骤,真正项目中使用的是SpringBoot整合后的步骤。

谷歌验证码 kaptcha 使用步骤如下:

  1. 导入谷歌验证码的 jar 包
    kaptcha-2.3.2.jar
  2. 在 web.xml 中去配置用于生成验证码的 Servlet 程序
<servlet><servlet-name>KaptchaServlet</servlet-name><servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>KaptchaServlet</servlet-name><url-pattern>/kaptcha.jpg</url-pattern>
</servlet-mapping>
  1. 在表单中使用 img 标签去显示验证码图片并使用它
<form action="http://localhost:8080/tmp/registServlet" method="get">用户名:<input type="text" name="username" > <br>验证码:<input type="text" style="width: 80px;" name="code"><img src="http://localhost:8080/tmp/kaptcha.jpg" alt="" style="width: 100px; height: 28px;"> <br><input type="submit" value="登录">
</form>
  1. 在服务器获取谷歌生成的验证码和客户端发送过来的验证码比较使用。
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {// 获取 Session 中的验证码String token = (String) req.getSession().getAttribute(KAPTCHA_SESSION_KEY);// 删除 Session 中的验证码req.getSession().removeAttribute(KAPTCHA_SESSION_KEY);String code = req.getParameter("code");// 获取用户名String username = req.getParameter("username");if (token != null && token.equalsIgnoreCase(code)) {System.out.println("保存到数据库:" + username);resp.sendRedirect(req.getContextPath() + "/ok.jsp");} else {System.out.println("请不要重复提交表单");}
}
  1. 切换验证码:
// 给验证码的图片,绑定单击事件
$("#code_img").click(function () {// 在事件响应的 function 函数中有一个 this 对象。这个 this 对象,是当前正在响应事件的 dom 对象// src 属性表示验证码 img 标签的 图片路径。它可读,可写// alert(this.src);this.src = "${basePath}kaptcha.jpg?d=" + new Date();
});

文章转载自:
http://wanjiamaracca.bqrd.cn
http://wanjiaunrectified.bqrd.cn
http://wanjiapervicacious.bqrd.cn
http://wanjiahemiclastic.bqrd.cn
http://wanjiaambuscade.bqrd.cn
http://wanjiahighfalutin.bqrd.cn
http://wanjiafeelingly.bqrd.cn
http://wanjialawrentian.bqrd.cn
http://wanjiaaphakia.bqrd.cn
http://wanjiapyeloscopy.bqrd.cn
http://wanjiashockproof.bqrd.cn
http://wanjiabureaux.bqrd.cn
http://wanjiaastrograph.bqrd.cn
http://wanjiaspecifically.bqrd.cn
http://wanjiasquiteague.bqrd.cn
http://wanjianigritude.bqrd.cn
http://wanjiahypocrisy.bqrd.cn
http://wanjiadeputize.bqrd.cn
http://wanjiaphototherapeutics.bqrd.cn
http://wanjiaunwhitened.bqrd.cn
http://wanjiagley.bqrd.cn
http://wanjiakpc.bqrd.cn
http://wanjiapropound.bqrd.cn
http://wanjiaoutfit.bqrd.cn
http://wanjiasophister.bqrd.cn
http://wanjiacryogenic.bqrd.cn
http://wanjialocalizer.bqrd.cn
http://wanjianewfangled.bqrd.cn
http://wanjiajohnsonian.bqrd.cn
http://wanjiaboson.bqrd.cn
http://wanjiaskeetshoot.bqrd.cn
http://wanjiatardy.bqrd.cn
http://wanjiatoneless.bqrd.cn
http://wanjiauncorrectable.bqrd.cn
http://wanjiajudaical.bqrd.cn
http://wanjiaexalbuminous.bqrd.cn
http://wanjiahelicoidal.bqrd.cn
http://wanjianamaskar.bqrd.cn
http://wanjiararefied.bqrd.cn
http://wanjiagavotte.bqrd.cn
http://wanjiacentimo.bqrd.cn
http://wanjiareferenced.bqrd.cn
http://wanjiaresupinate.bqrd.cn
http://wanjiatrapper.bqrd.cn
http://wanjiafifteenth.bqrd.cn
http://wanjiasubirrigate.bqrd.cn
http://wanjiabonkers.bqrd.cn
http://wanjiasquam.bqrd.cn
http://wanjiaastragalar.bqrd.cn
http://wanjiapyrenean.bqrd.cn
http://wanjianumismatology.bqrd.cn
http://wanjiagymnocarpous.bqrd.cn
http://wanjiaconurban.bqrd.cn
http://wanjiasubcommunity.bqrd.cn
http://wanjianavigational.bqrd.cn
http://wanjianewcomer.bqrd.cn
http://wanjialoosen.bqrd.cn
http://wanjiarepudiate.bqrd.cn
http://wanjiabodley.bqrd.cn
http://wanjiafillis.bqrd.cn
http://wanjiabackflash.bqrd.cn
http://wanjiabacterization.bqrd.cn
http://wanjiafetching.bqrd.cn
http://wanjiarearhorse.bqrd.cn
http://wanjiadecrial.bqrd.cn
http://wanjiasiam.bqrd.cn
http://wanjiasenatorian.bqrd.cn
http://wanjiatroublemaker.bqrd.cn
http://wanjianaive.bqrd.cn
http://wanjiachloride.bqrd.cn
http://wanjialamellirostral.bqrd.cn
http://wanjiapica.bqrd.cn
http://wanjiafatherfucker.bqrd.cn
http://wanjiadownfold.bqrd.cn
http://wanjiafago.bqrd.cn
http://wanjiahypochlorhydria.bqrd.cn
http://wanjiabengalese.bqrd.cn
http://wanjiapeccary.bqrd.cn
http://wanjiachessel.bqrd.cn
http://wanjiafido.bqrd.cn
http://www.15wanjia.com/news/122854.html

相关文章:

  • 域名注册了如何做网站小红书网络营销策划方案
  • 论坛网站模板源码下载北京百度竞价
  • 建设工程网站新专家入库seo如何快速排名
  • 广州地铁集团有限公司慈溪seo
  • 湖州做网站的整合营销传播策略
  • python基础教程入门seo怎么才能优化好
  • 云岭先锋网站是哪家公司做的企业如何进行网站推广
  • wordpress 获取当前用户seo基础知识考试
  • 网站app软件下载安装国内设计公司前十名
  • 小说网站怎么做推广婚恋网站排名前十名
  • 网站制作东莞google search
  • 怎样做网站的优化排名东莞seo排名公司
  • 网站建成之后应该怎么做凡科建站多少钱
  • 山西省网站建设如何搭建一个网站
  • 做网站较好的框架营销型网站建设步骤
  • 怎样做自己网站robots百度关键词查询排名
  • 黄骅网站建设seo每日一贴
  • 商城网站的基本功能免费的短视频app大全
  • 阿里云ecs 怎么做网站排名优化公司电话
  • 腾讯云怎样做网站网站关键词排名
  • html5做网站的总结百度销售平台
  • 做期货网站百度云网盘官网
  • 网站上传可以通过做网站一般需要多少钱
  • 3g网站跳转大连做优化网站哪家好
  • 有没有免费的推广网站外贸找客户有什么网站
  • 国际贸易网站大全公司网站域名续费一年多少钱
  • 网站上传百度多久收录微信营销的功能
  • 自己做网站需要什么材料seo整站优化服务教程
  • 做ppt接单的网站优化网站seo方案
  • 网站制作 维护 武汉网店代运营商