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类
     
    本文只是对验证码的两种开源组件如何使用作简要介绍,详细内容可参考官方文档。
  • 相关阅读:
    递归函数写法
    海量数据问题总结
    文本分类项目总结
    梯度提升树-负梯度和残差的理解
    正则化方法L1 L2
    c++-虚函数与多态
    数据结构-并查集
    剑指offer 面试63题
    剑指offer 面试62题
    剑指offer 面试60题
  • 原文地址:https://www.cnblogs.com/konrad/p/6376318.html
Copyright © 2011-2022 走看看