使用maven和kaptcha框架实现验证码功能

什么是kaptcha框架?

Kaptcha是一个基于SimpleCaptcha的验证码开源项目。总之,就是一个验证码框架。

kaptcha 是一个非常实用的验证码生成工具。有了它,你可以生成各种样式的验证码,因为它是可配置的。kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.KaptchaServlet,生成一个图片。同时将生成的验证码字符串放到 HttpSession中。

一、建立一个maven项目(具体步骤下列图片上面有)

ps:如果是非maven管理的项目,则直接在官网下载kaptcha的jar包,然后添加到项目lib库中

 

 

 

 

 

 

二、导入maven依赖

在pom.xml中加入下面依赖,导入成功即可。

 <!-- kaptcha -->
    <dependency>
      <groupId>com.google.code.kaptcha</groupId>
      <artifactId>kaptcha</artifactId>
      <version>2.3</version>
    </dependency>

三、更改web.xml 进行验证码配置

kaptcha都是在web.xml中配置,我们必须在web.xml中配置kaptcha的servlet

其中servlet的url-pattern可以自定义。

web.xml 中代码配置如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
<!--  <display-name>Archetype Created Web Application</display-name>-->
  <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>/kaptcha.jpg</url-pattern>
  </servlet-mapping>
</web-app>

四、更改index.jsp页面(即放验证码图片的页面)

代码如下

<form action="submit.action">
    <input type="text" name="kaptcha" value="" /><img src="/kaptcha.jpg" />
</form>

注意:  上述代码中img的src="/kaptcha.jsp"和web.xml中的映射文件相同。

五、配置好Tomcat 就能运行显示相应的验证码了

第二部分(改变验证码样式上述的验证码实在是有点丑

kaptcha所有的参数都有默认的配置,如果我们不显示配置的话,会采取默认的配置。
如果要显示配置kaptcha,在配置kaptcha对应的Servlet时,在init-param增加响应的参数配置即可。

Constant	描述	默认值
kaptcha.border	图片边框,合法值:yes , no	yes
kaptcha.border.color	边框颜色,合法值: r,g,b (and optional alpha) 或者 white,black,blue.	black
kaptcha.border.thickness	边框厚度,合法值:>0	1
kaptcha.image.width	图片宽	200
kaptcha.image.height	图片高	50
kaptcha.producer.impl	图片实现类	com.google.code.kaptcha.impl.DefaultKaptcha
kaptcha.textproducer.impl	文本实现类	com.google.code.kaptcha.text.impl.DefaultTextCreator
kaptcha.textproducer.char.string	文本集合,验证码值从此集合中获取	abcde2345678gfynmnpwx
kaptcha.textproducer.char.length	验证码长度	5
kaptcha.textproducer.font.names	字体	Arial, Courier
kaptcha.textproducer.font.size	字体大小	40px
kaptcha.textproducer.font.color	字体颜色,合法值: r,g,b  或者 white,black,blue.	black
kaptcha.textproducer.char.space	文字间隔	2
kaptcha.noise.impl	干扰实现类	com.google.code.kaptcha.impl.DefaultNoise
kaptcha.noise.color	干扰颜色,合法值: r,g,b 或者 white,black,blue.	black
kaptcha.obscurificator.impl	图片样式:
水纹com.google.code.kaptcha.impl.WaterRipple
鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
阴影com.google.code.kaptcha.impl.ShadowGimpy
com.google.code.kaptcha.impl.WaterRipple
kaptcha.background.impl	背景实现类	com.google.code.kaptcha.impl.DefaultBackground
kaptcha.background.clear.from	背景颜色渐变,开始颜色	light grey
kaptcha.background.clear.to	背景颜色渐变,结束颜色	white
kaptcha.word.impl	文字渲染器
com.google.code.kaptcha.text.impl.DefaultWordRenderer
kaptcha.session.key	session key	KAPTCHA_SESSION_KEY
kaptcha.session.date	session date	KAPTCHA_SESSION_DATE

比如改变验证码长度(下面的代码会生成5个字母的验证码)

 <init-param>
      <param-name>kaptcha.textproducer.char.length</param-name>
      <param-value>5</param-value>
    </init-param>

改变图片样式成鱼眼样式

    <init-param>
      <param-name>kaptcha.obscurificator.impl</param-name>
      <param-value>com.google.code.kaptcha.impl.FishEyeGimpy</param-value>
    </init-param>

效果如下:

之后就是绑定到登录注册等一些需要使用验证码的功能上面了~

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值