验证码的制作和验证(二)

方法二:使用Kaptcha包实现验证码

  1.下载kaptcha-2.3.2.jar,http://download.csdn.net/download/huhongyu133/5040473

  2.新建项目,将包加到lib里面(如图)

        

  3.修改web.xml

1   <servlet>
2       <servlet-name>kaptcha</servlet-name>
3       <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
4   </servlet>
5   <servlet-mapping>
6       <servlet-name>kaptcha</servlet-name>
7       <url-pattern>/randomcode.jpg</url-pattern>
8   </servlet-mapping>

  4.index.jsp如下

1  <body>
2    <form action="check.jsp" method="get">
3       <img src='randomcode.jpg'>
4       <input type="text" name="r"/>
5       <input type="button" value="提交">
6    </form>
7  </body>

  效果:

 

  5.验证(check.jsp)

1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
2 <%
3     //检查验证码是否正确
4     String k=(String)session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
5     String str=request.getParameter("r");
6     if(k.equals(str))
7         out.print("true ");
8     out.print(k+"---"+str);
9 %>

  6.验证码的其他配置(在web.xml里面修改,加在<servlet-class>后面,<servlet>里面,只需修改<param-value>里的值即可)

  1 <init-param>
  2           <description>图片边框,合法值:yes,no,默认值:yes</description>
  3           <param-name>kaptcha.border</param-name>
  4           <param-value>yes</param-value>
  5       </init-param>
  6       <init-param>
  7           <description>边框颜色,合法值:white,black,blue等,默认值:black</description>
  8           <param-name>kaptcha.border.color</param-name>
  9           <param-value>blue</param-value>
 10       </init-param>
 11     <init-param>
 12           <description>边框厚度,合法值:>0,默认值:1</description>
 13           <param-name>kaptcha.border.thickness</param-name>
 14           <param-value>3</param-value>
 15       </init-param>
 16       <init-param>
 17           <description>图片宽度</description>
 18           <param-name>kaptcha.image.width</param-name>
 19           <param-value>300</param-value>
 20       </init-param>      
 21       <init-param>
 22           <description>图片高度</description>
 23           <param-name>kaptcha.image.height</param-name>
 24           <param-value>100</param-value>
 25       </init-param>
 26       <init-param>
 27           <description>图片实现类</description>
 28           <param-name>kaptcha.producer.impl</param-name>
 29           <param-value>com.google.code.kaptcha.impl.DefaultKaptcha</param-value>
 30       </init-param>
 31       <init-param>
 32           <description>文本实现类</description>
 33           <param-name>kaptcha.textproducer.impl</param-name>
 34           <param-value>com.google.code.kaptcha.text.impl.DefaultTextCreator</param-value>
 35       </init-param>
 36       <init-param>
 37           <description>文本集合,验证码值从此集合中获取</description>
 38           <param-name>kaptcha.textproducer.char.string</param-name>
 39           <param-value>#$%^^2154563ksvdjmks</param-value>
 40       </init-param>
 41       <init-param>
 42           <description>验证码长度,默认:5</description>
 43           <param-name>kaptcha.textproducer.char.length</param-name>
 44           <param-value>7</param-value>
 45       </init-param>
 46       <init-param>
 47           <description>字体,默认:Arail,Courier</description>
 48           <param-name>kaptcha.textproducer.font.names</param-name>
 49           <param-value>华文行楷</param-value>
 50       </init-param>
 51       <init-param>
 52           <description>字体大小,默认40px</description>
 53           <param-name>kaptcha.textproducer.font.size</param-name>
 54           <param-value>50</param-value>
 55       </init-param>
 56       <init-param>
 57           <description>字体颜色,合法值:white,black,blue等,默认:black</description>
 58           <param-name>kaptcha.textproducer.font.color</param-name>
 59           <param-value>blue</param-value>
 60       </init-param>
 61       <init-param>
 62           <description>文字间隔</description>
 63           <param-name>kaptcha.textproducer.char.space</param-name>
 64           <param-value>5</param-value>
 65       </init-param>
 66       <init-param>
 67           <description>干扰实现类</description>
 68           <param-name>kaptcha.noise.impl</param-name>
 69           <param-value>com.google.code.kaptcha.impl.DefaultNoise</param-value>
 70       </init-param>
 71       <init-param>
 72           <description>干扰颜色,合法值:white,black,blue等,默认:black</description>
 73           <param-name>kaptcha.noise.color</param-name>
 74           <param-value>blue</param-value>
 75       </init-param>
 76       <init-param>
 77           <description>图片样式:水纹(WaterRipple),鱼眼(FishEyeGimpy),阴影(ShadowGimpy),默认:水纹</description>
 78           <param-name>kaptcha.obscurificator.impl</param-name>
 79           <param-value>com.google.code.kaptcha.impl.ShadowGimpy</param-value>
 80       </init-param>
 81       <init-param>
 82           <description>背景实现类</description>
 83           <param-name>kaptcha.background.impl</param-name>
 84           <param-value>com.google.code.kaptcha.impl.DefaultBackground</param-value>
 85       </init-param>
 86       <init-param>
 87           <description>背景颜色渐变,开始颜色,默认:黑色</description>
 88           <param-name>kaptcha.background.clear.from</param-name>
 89           <param-value>green</param-value>
 90       </init-param>
 91       <init-param>
 92           <description>背景颜色渐变,结束颜色,默认:白色</description>
 93           <param-name>kaptcha.background.clear.to</param-name>
 94           <param-value>white</param-value>
 95       </init-param>
 96       <init-param>
 97           <description>文字渲染器</description>
 98           <param-name>kaptcha.word.impl</param-name>
 99           <param-value>com.google.code.kaptcha.text.impl.DefaultWordRenderer</param-value>
100       </init-param>
101       <init-param>
102           <description>session中存放验证码的key键,check.jsp中调用的key名称</description>
103           <param-name>kaptcha.session.key</param-name>
104           <param-value>KAPTCHA_SESSION_KEY</param-value>
105       </init-param>

 --未完待续--

**注:学习自慕课网《Java实现验证码制作》,附链接https://www.imooc.com/learn/283

posted @ 2018-01-22 18:27  爱编程的小龟龟  阅读(145)  评论(0)    收藏  举报