利用Kaptcha.jar生成图片验证码(以下源码可以直接复制并自定义修改)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Kaptcha.jar生成图片验证码(以下源码可以直接复制并自定义修改)相关的知识,希望对你有一定的参考价值。
说明:Kaptcha是一个很实用的验证码生成工具,它可以生成各种样式的验证码,因为它是可以配置的 目录: 一 实现步骤 二 实例 A 编写jsp页面 B 配置web.xml C 验证输入正确与否。
一 实现步骤
1 下载Kaptcha-2.3.jar
2 复制jar包,放于项目的lib包下
3 编写页面
4 配置web.xml
5 生成与验证简单代码
二 实例
A 编写jsp页面 < body> < form action="LoginAction?method=login"> 这是servlet的写法,使用框架另论 用户名: < input type="text" name="username"/> 密码: < input type="text" name="password"/> 验证码 < img src=‘/randomcode.jpg‘ onclick="this.src=‘randomcode.jpg‘"> 看不清请点击图片刷新 请输入验证码:< input type="text" name="inputCode"/> < input type="submit"> < /from> < /body>
B 配置 web.xml(使用时可直接复制)
< servlet> < servlet-name>Kaptcha< /servlet-name> < servlet-class> com.google.code.kaptcha.servlet.KaptchaServlet< /servlet-class> 更多配置如下(name值不变,value值可替换)
a 配置验证码图片是否显示边框
< init-param>
< description>图片边框,合法值:yes,no< /description>
< param-name>kaptcha.border< /param-name>
< param-value>yes< /param-value>
< /init-param>
b 配置边框颜色
< init-param>
< description>边框颜色,合法值:black,white,blue等颜色单词< /description>
< param-name>kaptcha.border.color< /param-name>
< param-value>black< /param-value>
< /init-param>
c 配置边框厚度
< init-param>
< description>边框厚度,合法值: >0 < /description>
< param-name>kaptcha.border.thickness< /param-name>
< param-value>1< /param-value>
< /init-param>
d 配置验证码图片宽度
< init-param>
< description>验证码图片宽度,合法值: >0 < /description>
< param-name>kaptcha.image.width< /param-name>
< param-value>200< /param-value>
< /init-param>
e 配置验证码图片高度 < init-param> < description>验证码图片高度,合法值: >0 < /description> < param-name>kaptcha.image.height< /param-name> < param-value>50< /param-value> < /init-param> f 配置图片的实现类 < init-param> < description>图片的实现类< /description> < param-name>kaptcha.producer.impl< /param-name> < param-value>com.google.code.kaptcha.impl.DefaultKaptcha< /param-value> < /init-param> g 配置文本的实现类 < init-param> < description>文本的实现类< /description> < param-name>kaptcha.textproducer.impl< /param-name> < param-value>com.google.code.kaptcha.text.impl.DefaultTextCreator< /param-value> < /init-param> h 配置验证码值包含字母数字配置 < init-param> < description>验证码包含的数据,合法值:字母、数字等< /description> < param-name>kaptcha.textproducer.char.string< /param-name> < param-value>abcde12345ABCDE< /param-value> < /init-param> h 配置验证码位数 < init-param> < description>验证码位数 >0 < /description> < param-name>kaptcha.textproducer.char.length< /param-name> < param-value>5< /param-value> < /init-param> i 配置验证码字体 < init-param> < description>验证码字体(将需要的字体名称写入value,逗号隔开),合法值:Arial,Courier等< /description> < param-name>kaptcha.textproducer.font.names< /param-name> < param-value>Arial,Courier< /param-value> < /init-param> j 配置验证码字体大小 < init-param> < description>验证码字体大小 40px< /description> < param-name>kaptcha.textproducer.font.size< /param-name> < param-value>40< /param-value> < /init-param> k 配置验证码字体颜色 < init-param> < description>验证码颜色,合法值:black,white,blue等< /description> < param-name>kaptcha.textproducer.font.color< /param-name> < param-value>black< /param-value> < /init-param> l 配置验证码间隔 < init-param> < description>验证码数据间隔 2等< /description> < param-name>kaptcha.textproducer.char.space< /param-name> < param-value>2< /param-value> < /init-param> m 配置验证码干扰实现类 < init-param> < description>干扰实现类< /description> < param-name>kaptcha.noise.impl< /param-name> < param-value>com.google.code.kaptcha.impl.DefaultNoise< /param-value> < /init-param> n 配置干扰颜色 < init-param> < description>干扰线颜色,合法值:r,g,b或者white,black,blue< /description> < param-name>kaptcha.noise.color< /param-name> < param-value>black< /param-value> < /init-param> o 配置验证码图片样式 < init-param> < description>验证码图片样式: 水纹 com.google.code.kaptcha.impl.WaterRipple 鱼眼 com.google.code.kaptcha.impl.FishEyeGimpy 阴影 com.google.code.kaptcha.impl.ShadowGimpy < /description> < param-name>kaptcha.obscurificator.impl< /param-name> < param-value>com.google.code.kaptcha.impl.WaterRipple< /param-value> < /init-param> p 配置验证码背景实现类 < init-param> < description>背景实现类< /description> < param-name>kaptcha.background.impl< /param-name> < param-value>com.google.code.kaptcha.impl.DefaultBackground< /param-value> < /init-param> q 验证码在session中存放的key键配置 < init-param> < description>session中存放的key键< /description> < param-name>kaptcha.session.key< /param-name> < param-value>KAPTCHA_SESSION_KEY< /param-value> < /init-param> < /servlet> < servlet-mapping> < servlet-name>Kaptcha< /servlet-name> < url-pattern>/randomcode.jpg< /url-pattern> < !-- 此处为生成的验证码图片 --> < servlet-mapping>
C 登录验证 //后台获取生成的验证码: String verify=(String)request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY); //接收用户输入的验证码: String userVerify = request.getParameter("此处是输入验证码的input标签name属性值"); //判断 if(verify.equals(userVerify)){ 开始判断用户名密码是否正确 等操作 }else{ request.setAttribute("verifyError","验证码输入有误!") 返回登录页(getDispatch....或者struts2等) }
以上是关于利用Kaptcha.jar生成图片验证码(以下源码可以直接复制并自定义修改)的主要内容,如果未能解决你的问题,请参考以下文章