关于表单重复提交之验证码 和谷歌Kaptcha图片验证码的使用

表单重复提交之-----验证码

表单重复提交有三种常见的情况:

一:提交完表单。服务器使用请求转来进行页面跳转。这个时候,用户按下功能键 F5,就会发起最后一次的请求。

造成表单重复提交问题。解决方法:使用重定向来进行跳转

二:用户正常提交服务器,但是由于网络延迟等原因,迟迟未收到服务器的响应,这个时候,用户以为提交失败,

就会着急,然后多点了几次提交操作,也会造成表单重复提交。

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

提交。

关于表单重复提交之验证码 和谷歌Kaptcha图片验证码的使用

谷歌 kaptcha 图片验证码的使用

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

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

kaptcha-2.3.2.jar

关于表单重复提交之验证码 和谷歌Kaptcha图片验证码的使用

2、我们只需要在 web.xml 中去配置用于生成验证码的 Servlet 程序

关于表单重复提交之验证码 和谷歌Kaptcha图片验证码的使用

3、在表单中使用 img 标签去显示验证码图片并使用

关于表单重复提交之验证码 和谷歌Kaptcha图片验证码的使用

这个程序会自行的运行,并且将这个验证码图片的具体数字发送到Session域中保存起来

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

关于表单重复提交之验证码 和谷歌Kaptcha图片验证码的使用

为了更加完善,比如说当这个验证码图片看不清的时候,我们需要点击它来实现切换的效果,那么只需要在这个图片上绑定一个单击事件,对他的这个路径重新赋值即可,

关于表单重复提交之验证码 和谷歌Kaptcha图片验证码的使用

对于 this.src = "${basePath}kaptcha.jpg?d="+new Date(); 的解释

因为每次发起请求,如果请求地址一样的话,浏览器会因为有缓存,所以图片会不变,那么将请求地址添加一个随时间戳变化的请求参数即可改善这个现象。

上一篇:Twitter的分布式系统中ID生成方法——Snowflake


下一篇:cocos2d-x 3.0rc1 编译cpp-testsproject