表单重复提交问题

一、表单重复提交的三种常见的情况以及解决方法

情况1、提交完表单。服务器使用请求转发来进行页面跳转,这个时候,用户按下功能键F5,就会发起最后一次的请求,造成表单重复提交问题。

解决方法:使用重定向来进行跳转

情况2、用户正常提交服务器,到那时由于网络延迟等原因,迟迟未收到服务器的响应,用户以为提交失败,然后多点了几次提交操作,也会造成表单的重复提交。

情况3、用户正常提交服务器,服务器也没有延迟,但是提交完成后,用户回退浏览器,重新提交,也会造成表单重复提交。

解决方法:使用验证码

底层原理如下所示:
在这里插入图片描述


二、谷歌kaptcha图片验证码的使用

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

步骤1、导入谷歌验证码的jar包

	kaptcha-2.3.2.jar

步骤2、在web.xml中取配置用于验证码的Servlet程序

如下操作:
在这里插入图片描述

步骤3、在表单中使用img标签取显示验证码图片并使用它。
在这里插入图片描述

步骤4、在服务器获取谷歌生成的验证码和客户端发送过来的验证码比较使用。

KAPTCHA_SESSION_KEY存储着Session中的验证码
在这里插入图片描述


三、验证码的切换(绑定单击事件)

浏览器存在缓存,验证码点击刷新只会改变一次的情况

解决方法在请求时,后面追加不同的值,就可以避免
在这里插入图片描述

先给验证码加入id=“code_img”,以便绑定单击事件。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值