前一篇博客已经介绍了如何用Java servlet产生验证码,本篇继续介绍如何使用一些开源组件生成验证码
————————————————————————————————————————————
 
使用开源组件实现验证码
    Jcaptcha:一个用来生成图像验证码的Java开源组件,使用起来也是非常的方便简单。与Spring组合使用,可产生多种形式的验证码。
    Kaptcha:一个非常使用的验证码生成工具,有了它,你可以生成各种样式的验证码,因为它是可配置的。
 
    使用Jcaptcha组件实现验证码
        下载jcaptcha-integration-simple-servlet-sampler.war
 
        使用配置web.xml:

<servlet>
<servlet-name>jcaptcha</servlet-name>
<servlet-class>com.octo.captcha.module.servlet.image.SimpleImageCaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jcaptcha</servlet-name>
<url-pattern>/jcaptcha.jpg</url-pattern>
</servlet-mapping>
           验证验证码是否输入正确:SimpleImageCaptchaServlet.validateResponse(request, userCaptcha);
 
 
      使用Kaptcha组件实现验证码
            下载kaptcha-2.3.jar

            使用配置web.xml:

<servlet>
<servlet-name>Kaptcha</servlet-name>
<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Kaptcha</servlet-name>
<url-pattern>/randomcode.jpg</url-pattern>
</servlet-mapping>
            验证验证码是否输入正确:session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);   
 
            Kaptcha的详细属性配置web.xml:

<init-param>
<description>图片边框,合法值:yes,no</description>
<param-name>kaptcha.border</param-name>
<param-value>yes</param-value>
</init-param>
<init-param>
<description>边框颜色,合法值:white, black, blue等</description>
<param-name>kaptcha.border.color</param-name>
<param-value>black</param-value>
</init-param>
<init-param>
<description>边框厚度,合法值:>0 </description>
<param-name>kaptcha.border.thickness</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<description>图片宽度 </description>
<param-name>kaptcha.image.width</param-name>
<param-value>200</param-value>
</init-param>
<init-param>
<description>图片实现类 </description>
<param-name>kaptcha.producer.impl</param-name>
<param-value>com.google.code.kaptcha.impl.DefaultKaptcha</param-value>
</init-param>
<init-param>
<description>文本实现类 </description>
<param-name>kaptcha.textproducer.impl</param-name>
<param-value>com.google.code.kaptcha.text.impl.DefaultTextCreator</param-value>
</init-param>
<init-param>
<description>文本集合,验证码值从此集合中获取 </description>
<param-name>kaptcha.textproducer.char.string</param-name>
<param-value>abcde2345678gfynmnpwx</param-value>
</init-param>
<init-param>
<description>字体,Arial, Courier </description>
<param-name>kaptcha.textproducer.font.names</param-name>
<param-value>Arial, Courier</param-value>
</init-param>
<init-param>
<description>干扰实现类</description>
<param-name>kaptcha.noise.impl</param-name>
<param-value>com.google.code.kaptcha.impl.DefaultNoise</param-value>
</init-param>
<init-param>
<description>图片样式:水纹,鱼眼,阴影</description>
<param-name>kaptcha.obscurificator.impl</param-name>
<param-value>com.google.code.kaptcha.impl.WaterRipple</param-value>
</init-param>
<init-param>
<description>session中存放验证码的key键</description>
<param-name>kaptcha.session.key</param-name>
<param-value>KAPTCHA_SESSION_KEY</param-value>
</init-param>
            中文验证码实现
                extends Configurable implements TextProducer
            
            算式验证码的实现
                重写KaptchaServlet类
 
本文只是对验证码的两种开源组件如何使用作简要介绍,详细内容可参考官方文档。

最新文章

  1. linux有关信号的FAQ
  2. Quartz 在 Spring 中如何动态配置时间--转
  3. Enable rsh on MAC OS with command line
  4. Error
  5. SharePoint Server 2016 IT Preview 先睹为快
  6. Hololens开发笔记之使用Unity开发一个简单的应用
  7. POJ 2826 An Easy Problem?!
  8. 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。
  9. scala学习笔记:集合
  10. poj 3984 迷宫问题【bfs+路径记录】
  11. 深度优先搜索-linux上浅显易懂的例子
  12. nginx和apache的优缺点比较
  13. oracle 创建字段自增长——两种实现方式汇总(转)
  14. 【CTO辩论】移动创业大军:谁斗争or变更代理
  15. 英伟达CUVID硬解,并通过FFmpeg读取文件
  16. Git常用命令(一)------ 本地操作
  17. Scrapy:Python实现scrapy框架爬虫两个网址下载网页内容信息——Jason niu
  18. HTML5 元素属性介绍
  19. IP分组交付和转发
  20. SPOJ 10628. Count on a tree (树上第k大,LCA+主席树)

热门文章

  1. mycat 1.6.6.1安装以及配置docker 安装mysql 5.7.24 双主多从读写分离主主切换
  2. Aizu-1378- ICPC Asia 2017-Secret of Chocolate Poles
  3. 906 AlvinZH的奇幻猜想----整数乘积(背包DP大作战O)
  4. App功能测试的注意点
  5. JAVA泛型方法与类型限定
  6. webform的导出
  7. 在MonoGame中SetRenderTarget会把后备缓冲区清除的解决方法
  8. Java 数据表映射
  9. CSAPP阅读笔记-数组分配与访问-来自第三章3.8的笔记-P176-P183
  10. CSAPP阅读笔记-汇编语言初探(数据传送类指令)-来自第三章3.2-3.3的笔记-P115-P128