谷歌kaptcha图片验证码的使用

一、演示素材的准备

二、详细演示

1. 打开Eclipse,新建一个动态web工程,我的基本上都是默认设置,没有改;

2. 将kaptcha-2.3.2.jar拷贝到刚刚创建的web工程下的lib目录下;

3. web.xml配置文件中去配置生成验证码的Servlet访问地址;

4. 谷歌kaptcha有一些参数配置,参考aptcha详细参数说明文档,可以做更多的配置;

例如:配置验证码图片是否有边框,限定验证码内容的取值、长度等,很多。

在web.xml中的配置示例如下:

5. 编写一个jsp测试页面,例如index.jsp

这里的form里面的action值是:LoginServlet,也就是我们接下来要编写的处理请求的Servelt的访问路径;

Img标签里面src的值是:kaptcha.jpg,也就是我们在 web.xml里面配置的KaptchaServlet那个地方的访问路径。

6. 编写一个Servlet程序处理验证码;

在src目录下新建一个 包,然后创建一个Servlet,继承自HttpServlet,目录如下:

在这个LoginServlet.java文件中,写核心的处理代码,其实,也非常简单,我们编写doPost()方法为例吧!

doPost()方法是重写HttpServlet的doPost()方法,里面添加我们自己的业务代码。

下面的代码示例,是做准备工作,获取用户提交过来的相关参数,已经处理中文乱码问题。

接下来就是关于验证码的一些代码,Kaptcha会把产生的验证码放到session,通过一个常量命名。

7. 测试

将工程运行到服务器上面    右键工程名 ---> Run As  --->  Run on Server

因为web.xml里面默认的配置欢迎页面有index.jsp,所以我们运行后会在浏览器中看到如下效果:

此时验证码已经使用成功了,输入正确的验证码,会验证通过;输入错误的验证码,则验证通不过。

8. 改进

有几个地方需要注意:

(1) . 防止用户重复提交,我们需要在服务器端代码里面,获取session里面存放的验证码内容之后,删除session里面的验证码。前面的代码示例里面已经写过,这里强调一下。

(2) . 中文乱码问题。

主要是设置request和response来解决。也就是针对请求的乱码进行解决,针对响应的乱码进行解决,上面的代码中也是写过。强调一点,代码写在处理数据之前。

(3) . 点击图片验证码刷新

这时候,我们用到jQuery,所以,引入jQuery库,我们新建一个js文件夹到WebContent目录下,在这个js文件夹里面存放我们的js文件。

在我们编写的index.jsp页面中先导入jQuery文件,然后,添加点击验证码图片的响应事件,达到刷新验证码的效果。代码如下:

至此,我们的整个验证码的使用就成功了,整个示例的目录结构如下:

谷歌图片验证码的使用图文详解附源码相关推荐

  1. java反射源码_java反射技术详解附源码

    在学校学习Java时,由于学的不扎实,也没经历过太多实战项目,所以很多重要的知识点瞟一眼就过去了,比如现在要讲的反射,当时直接就忽略掉了,可现在发现很多地方需要反射,不得不重新学习一下,上学欠了太多债 ...

  2. python嗅探工具详解附源码(使用socket,带tkinter界面)

    python嗅探工具详解(带tkinter界面) 点击详见原理 点击详见原理 TCP/IP协议号补充 必备基础知识 IP数据包格式 详见点此 TCP报文格式 详见点此 struct模块 在Python ...

  3. python开发技术详解pdf下载_python开发技术详解附源码-python开发技术详解电子书pdf下载高清去水印版-精品下载...

    Python开发技术详解适合Python爱好者.大中专院校的学生.社会培训班的学生以及用Python语言进行系统管理.GUI开发.Web开发.数据库编程.网络编程的人员使用. 内容提要 Python是 ...

  4. 「兔了个兔」CSS如此之美,看我如何实现可爱兔兔LOADING页面(万字详解附源码)

  5. 【Vue 实战项目】后台管理系统登录页详解附源码

    提示:前端查漏补缺,仅代表个人观点. 文章目录 一.先看效果图 二.实战步骤 1. 创建项目 2. 引入库 3. 登录页关键代码 三.页面源代码 总结 提示:项目源代码除了登录页面还有动态路由 一.先 ...

  6. Linux下stream内存带宽测试参数和示例详解附源码(总结)

    目录 一.简介 二.使用简介 2.1 测试内容简介 2.2 编译参数简介 2.3 具体参数示例 三.源码下载及使用 四.其他相关知识链接 FIO测试硬盘性能参数和实例总结 一.简介 本文通过实例详细讲 ...

  7. 小程序获取城市行政区号_微信小程序 省市区选择器实例详解(附源码下载)

    微信小程序 省市区选择器: 最近学习微信小程序,为了检验自己的学习效果,自己做一个小示例,网上搜索下类似的实例,发现这个更好,大家看下. 一.区域间手势滑动切换,标题栏高亮随之切换 思路是:拿当前的c ...

  8. 实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)

    导读 本文主要介绍使用OpenCV对扫描文本矫正的应用实例及详细实现步骤. 背景介绍 在使用打印机或扫描仪扫描文档时,由于摆放位置差异难免造成扫描文档的倾斜.本文将使用OpenCV将倾斜的文档矫正水平 ...

  9. dom操作获取盒子宽高位置的三种方法,offset/scroll/client三大家族使用详解(附源码及注释)

    结论:页面body的高度==视口的高度+滚动条滚动的距离. 这是一个恒等式,看完本篇博客,你将了解offset/scroll/clent三大事件获取宽高位置的具体含义,运用所学内容可以推导出这样的恒等 ...

  10. OpenCvSharp (C# OpenCV) 实现扫描文本矫正应用与实现详解(附源码)

    导  读 本文主要介绍使用OpenCV对扫描文本矫正的应用实例及详细实现步骤. 背景介绍 在使用打印机或扫描仪扫描文档时,由于摆放位置差异难免造成扫描文档的倾斜.本文将使用OpenCV将倾斜的文档矫正 ...

最新文章

  1. 拆卸台式电脑主机,cpu,硬盘,内存条等
  2. Android之选项菜单和上下文菜单解析
  3. python 填充多边形 学习笔记
  4. 复习笔记13 字符流与字节流
  5. pycharm安装过程及文件
  6. Linux系统分区知识
  7. 天池读书会来啦,带你体验沉浸式读书新方式
  8. 并发编程——线程——线程的理论和创建以及守护线程
  9. 【存储过程】Merge Into语句实现Insert/Update在Oracle中的应用
  10. [BZOJ 2957]楼房重建(线段树)
  11. 分布与并行计算—生产者消费者模型队列(Java)
  12. 面向对象三个特征总结
  13. 查询结果取交集_Elasticsearch 查询过程中的 prefilter 原理
  14. 融云出海洞察,海外社交市场地区篇
  15. 关于Excel被保护的工作表忘记密码的强制解除办法
  16. obs 推流编码在哪设置_浮动课堂 | 讲讲OBS直播软件的简单设置
  17. OVP保护芯片首选ETA7008,耐压36V,过压保护点可调
  18. coreseek-4.1-win32版本下windows安装记录
  19. 用什么软件可以检测苹果耳机芯片_创新发布Sound Blaster X3外置声卡:支持新一代Super XFi耳机音效...
  20. 基于java+jsp的酒店预订系统

热门文章

  1. 批量关闭开启wordpress文章的评论功能
  2. win 11 无法打出中文句号问题(中/英文标点切换) 微软五笔输入法
  3. IntelliJ IDEA更换主题样式分享
  4. Ubuntu上安装Chrome浏览器
  5. 重签名ipa步骤及工具
  6. HTML+CSS奥运五环
  7. oracle现金流量表逻辑,现金流量表之附表逻辑分析
  8. 三大跳槽传闻,信了你就输了!
  9. Leetcode 739 每日温度
  10. 计算机关闭地址栏历史,删除win10地址栏历史记录方法