专注JavaWeb开发 首页制式『默认式 OR 时间轴 网站地图|RSS订阅|设为首页|加入收藏
当前位置:首页 >Java >JavaEE初级 > 正文

JavaWeb项目使用kaptcha验证码

作者: 紫寒1120 发布时间: 2016-03-29 浏览次数:

官方地址:https://code.google.com/p/kaptcha/w/list

1、把下载的kaptcha-2.3.2.jar添加到lib中

2、配置web.xml增加servlet

[html] 

  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>/kaptcha.jpg</url-pattern>

  8. </servlet-mapping>


3、在jsp页面中

[html] 

  1. <formaction="submit.action"method="post">

  2.     <imgsrc="kaptcha.jpg"id="kaptchaImage"/><inputtype="text"

  3.         name="kaptcha"value=""/><inputtype="submit"name="submit"

  4.         value="submit"/>

  5. </form>

其中src="kaptcha.jpg"会被定位到servlet上

4、KaptchaServlet会把验证码设置到session中,可以如下方式获取

[html] 

  1. String kaptchaExpected = (String)request.getSession()  

  2.     .getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);  


5、如果是struts2的action,可以如下方式获取

[html] 

  1. String kaptchaExpected = (String)ActionContext.getContext().getSession()  

  2. .get(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);  

6、如果想设置点击图片更换验证码,可以加上如下js,需要jquery

[html]

  1. <scripttype="text/javascript">

  2.     $(function(){  

  3.         $('#kaptchaImage').click(function () { $(this).attr('src', '/kaptcha.jpg?' + Math.floor(Math.random()*100) ); })  

  4.     });  

  5. </script>


7、或者来点fade效果

[html] 

  1. <scripttype="text/javascript">

  2.     $(function() {  

  3.         $('#kaptchaImage').click(  

  4.                 function() {  

  5.                     $(this).hide().attr('src',  

  6.                             'kaptcha.jpg?' + Math.floor(Math.random() * 100)).fadeIn();  

  7.                 });  

  8.     });  

  9. </script>


8、验证码图片还有很多参数设置

设置方法,在web.xml的servlet中

[html] view plain copy print?

  1. <init-param>

  2.     <param-name>kaptcha.border</param-name>

  3.     <param-value>no</param-value>

  4. </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_GRAY

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

QQ群: 武汉地区(142173356)验证消息JavaWeb1024

网友共有【】评论,点击查看



x 微信关注我们 随时获取最新网站资讯