Java验证码开源框架:jcaptcha

09-09-23 banq
jcaptcha是一个标准CAPTCHA实现,这是一种用来分辨计算机自动响应还是人工输入的技术,就是我们俗称的登录验证码。防止计算机自动识别简单的验证码进行注册登录。

jcaptcha是 Java Completely Automated Public Test to tell Computers and Humans Apart。

验证码输出案例,包括声音:





使用起来很简单:
1.将 jcaptcha.jar file into the WEB-INF/lib
2.配置web.xml
<servlet>
<servlet-name>jcaptcha</servlet-name>
<servlet-class>com.octo.captcha.servlet.image.SimpleImageCaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jcaptcha</servlet-name>
<url-pattern>/jcaptcha.jpg</url-pattern>
</servlet-mapping>

3.在你需要输入验证码的页面表单加入:
<form action="submit.action">
...
<img src="jcaptcha.jpg" /> <input type="text" name="jcaptcha" value="" />
...
</form>

4.在表单提交的接受servlet或Action或Controller中加入下面代码进行验证:
String userCaptchaResponse = request.getParameter("jcaptcha");
boolean captchaPassed = SimpleImageCaptchaServlet.validateResponse(request, userCaptchaResponse);
if(captchaPassed){
// proceed to submit action
}else{
// return error to user
}


开源项目网址:

jcaptcha

[该贴被banq于2009-09-23 11:06修改过]

xysniper
2009-09-23 13:57
我试了,显示一个叉,没有出现图片,我把网站上的demo拿下来也显示不出来

banq
2009-09-23 14:07
你倒挺快,我只是配了没有试验呢,可能这个jsp中<img src="jcaptcha.jpg" />中应该在jcaptcha.jpg加上绝对路径http://localhost:8080/你的项目WAR名/jcaptcha.jpg

xysniper
2009-09-23 15:27
我就是这样访问的,根本不行,图片路径是对的,但不显示

xysniper
2009-09-23 15:58
估计是java version不同导致,网上提供的jar是用jdk6.0以上编译的,如果使用jre1.5就不能正常使用,我没有试过

BinnyJ
2009-09-24 00:10
Jcapthca很不错.我的项目就用这个,性能,使用个方面都很不错.

ITfuture
2009-09-24 01:41
为什么默认的不可以?

[该贴被ITfuture于2009-09-24 02:18修改过]

tomcyndi
2009-09-24 10:50
按照楼主说的去做,失败,提示找不到 SimpleImageCaptchaServlet 这个类,貌似jcaptcha.jar根本就没有这个类。
而且页面上的图片也没有显示,是一个叉。
不知这位仁兄是如何做的?

hzgnjupt
2009-09-24 11:14
按照5 minutes application integration tutorial试了下
成功~
确实很方便很好用:)

tomcyndi
2009-09-24 14:08
jcaptcha使用的具体步骤网上虽然有很多相关资料,但本人试了很多都失败。
好不容易在csdn找到一个完整的Jcaptcha 彩色验证码实例,可以直接用,地址如下:
http://download.csdn.net/source/1219519
或者:
http://search.download.csdn.net/search/jcaptcha

atester
2009-10-08 10:19
只是美观上差一点...别的还好

jvcoffee
2009-10-09 15:55
回tomcyndi:SimpleImageCaptchaServlet要自己写的...