- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java开源项目—验证码kaptcha
Java开源项目—验证码kaptcha
Kaptcha是一个基于SimpleCaptcha的验证码开源项目。
Kaptcha托管于Google Code,项目地址:/p/kaptcha/
看看Kaptcha输出验证码的Demo:
一、来自项目主页的介绍(译)
通常情况下,Kaptcha很容易安装使用,并且默认输出验证码。默认产生的验证码和上图很相似。如果你想改变输出的样式,可以通过配置一组选项,就可以输出你自定义的变形样式。
SimpleCaptcha?是很棒的项目。但是,SimpleCaptcha似乎没有被维护和更新,在JDK1.5和Servlet输出的HTTP头部情况下还存在一些问题,有一堆的错误报告。 近三年,SimpleCaptcha的论坛没有任何的消息,也没有新的版本或任何改变。
为什么不使用jCaptcha呢?它也是一个很棒的项目,但它不是一个快速解决方案,更像是一个库。在网站上,它默认输出的样式不是太难分辨就是不够好。它也相当的慢。肯定的是,你需要像我一样花很多的时间来熟悉它的API。但事实是,我愿意是一个简单的Jar包文件,轻松地导入我的项目,然后在web.xml添加几行代码即可。
注意:jCaptcha 和 Kaptcha所用的像素不同,不能在同一个项目中同时使用。
二、配置参数(web.xml)
kaptcha的配置是通过web.xml完成的,所有的参数都有默认值。
在web.xml中配置kaptcha对应的Servlet时,只需在init-param中添加相应的参数配置即可,如下:
init-param
param-namekaptcha.border/param-name
param-valueyes/param-value
/init-param
具体的参数列表请参见:/p/kaptcha/wiki/ConfigParameters
三、具体的使用说明
1、将kaptcha.jar添加到项目WEB-INF/lib中。2、在web.xml配置kaptcha的Servlet
servlet
servlet-nameKaptcha/servlet-name
servlet-classcom.google.code.kaptcha.servlet.KaptchaServlet/servlet-class
/servlet
servlet-mapping
servlet-nameKaptcha/servlet-name
url-pattern/kaptcha.jpg/url-pattern
/servlet-mapping
3、在页面上的调用
form action=submit.action
img src=kaptcha.jpg / input type=text name=kaptcha value= /
/form
4、在对应submit的Action中,验证用户输入是否正确
String kaptchaExpected = (String)request.getSession()
? ? .getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
String kaptchaReceived = request.getParameter(kaptcha);
?
if (kaptchaReceived == null || !kaptchaReceived.equalsIgnoreCase(kaptchaExpected))
{
? ? setError(kaptcha, Invalid validation code.);
}
5、最后,确保你JDK设置了-Djava.awt.headless=true
如何实现刷新图片
可以在请求URL后添加随机参数,避免浏览器的缓存。
img src=/kaptcha width=200 id=kaptchaImage /
script type=text/javascript
$(function(){
$(#kaptchaImage).click(function () {
$(this).attr(src, /kaptcha.jpg? + Math.floor(Math.random()*100) ); })
});
/script
br /smallCant read the image? Click it to get a new one./small
你也可以将图片设置为渐变的效果
$(#kaptchaImage).clic
原创力文档


文档评论(0)