zoukankan      html  css  js  c++  java
  • Java生成验证码(二)

    前一篇博客已经介绍了如何用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类
     
    本文只是对验证码的两种开源组件如何使用作简要介绍,详细内容可参考官方文档。
  • 相关阅读:
    P2762 [网络流24题]太空飞行计划问题(最小割)
    poj2987 Firing[最小割]
    P2051 [AHOI2009]中国象棋[线性DP]
    poj1637 Sightseeing tour[最大流+欧拉回路]
    hdu3739 Anti LIS[最小割]
    P2766 [网络流24题]最长不下降子序列问题
    P2764 [网络流24题]最小路径覆盖问题[最大流]
    P2936(BZOJ3396) [USACO09JAN]全流Total Flow[最大流]
    BZOJ4278 [ONTAK2015]Tasowanie[后缀数组+贪心]
    Robot framework之元素定位实战
  • 原文地址:https://www.cnblogs.com/konrad/p/6376318.html
Copyright © 2011-2022 走看看