kaptcha验证码组件实例

          生成验证码的方式有很多,也有很多不同的组件,下面介绍下如何使用kaptcha验证码组件。

          1.添加jar

             maven坐标如下:

       <dependency>
           <groupId>net.sourceforge.jexcelapi</groupId>
           <artifactId>jxl</artifactId>
           <version>2.6.12</version>
       </dependency>
           

           2.配置servlet和拦截的url

<!--验证码-->
  <servlet>
    <!-- 生成图片的Servlet -->
    <servlet-name>verCode</servlet-name>
    <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
    <!-- 是否有边框-->
    <init-param>
      <param-name>kaptcha.border</param-name>
      <param-value>yes</param-value>
    </init-param>
    <!-- 边框颜色-->
    <init-param>
      <param-name>kaptcha.border.color</param-name>
      <param-value>196,165,0</param-value>
    </init-param>
    <!-- 背景色-->
    <init-param>
      <param-name>kaptcha.background.clear.from</param-name>
      <param-value>white</param-value>
    </init-param>
    <init-param>
      <param-name>kaptcha.background.clear.to</param-name>
      <param-value>white</param-value>
    </init-param>
    <!-- 字体颜色 -->
    <init-param>
      <param-name>kaptcha.textproducer.font.color</param-name>
      <param-value>90,142,0</param-value>
    </init-param>
    <!-- 样式 -->
    <!--<init-param>-->
    <!--<param-name>kaptcha.obscurificator.impl</param-name>-->
    <!--<param-value>com.google.code.kaptcha.impl.ShadowGimpy</param-value>-->
    <!--</init-param>-->
    <!-- 图片宽度 -->
    <init-param>
      <param-name>kaptcha.image.width</param-name>
      <param-value>130</param-value>
    </init-param>
    <!-- 使用哪些字符生成验证码 -->
    <init-param>
      <param-name>kaptcha.textproducer.char.string</param-name>
      <param-value>ABCDEFGHKLMNPRSTWXY12345679</param-value>
    </init-param>
    <!-- 图片高度 -->
    <init-param>
      <param-name>kaptcha.image.height</param-name>
      <param-value>35</param-value>
    </init-param>
    <!--字体大小-->
    <init-param>
      <param-name>kaptcha.textproducer.font.size</param-name>
      <param-value>30</param-value>
    </init-param>
    <!--干扰线的颜色-->
    <init-param>
      <param-name>kaptcha.noise.color</param-name>
      <param-value>87,57,57</param-value>
    </init-param>
    <!--字符个数-->
    <init-param>
      <param-name>kaptcha.textproducer.char.length</param-name>
      <param-value>4</param-value>
    </init-param>
    <!--使用哪些字体-->
    <init-param>
      <param-name>kaptcha.textproducer.font.names</param-name>
      <param-value>Arial</param-value>
    </init-param>
  </servlet>
  <!--映射的url -->
  <servlet-mapping>
    <servlet-name>verCode</servlet-name>
    <url-pattern>/api/verCode</url-pattern>
  </servlet-mapping>
        

        3.前台获取图片

           前台使用<img>标签的src属性指定这个url就可以得到验证码的图片


        4.验证验证码

           因为在请求这个url后,这个servlet除了生成了图片外,还把随机生成的验证码放在当前的session中。需要验证的时候,首先从session去取key为KAPTCHA_SESSION_KEY的值,该值就是验证码的值,然后对比前台传过来的验证码,一致则验证码正确。

String vcode = (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);



         

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值