kaptcha
1.
kaptcha一个很好用的验证码插件,java版的,很不错的一个插件,只用简单的在web.xml中设置几个属性,一个很漂亮的验证码就出来了。其他的参数都可以自己设置,最牛的就是提供了接口,可以自己定义哦。
[代码] html代码
<form action="submit.action">
<img src="kaptcha.jpg" /> <input type="text" name="kaptcha" value="" />
</form>
[代码] web.xml
<servlet>
<servlet-name>Kaptcha</servlet-name>
<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Kaptcha</servlet-name>
<url-pattern>/kaptcha.jpg</url-pattern>
</servlet-mapping>
[代码] java代码
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.");
}
[代码] 根据点击显示验证码
<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 /><small>Can't read the image? Click it to get a new one.</small>
jcaptcha
2.
前言:
现在很多系统和网站使用场景都使用验证码来增强系统安全性。
下面介绍jcaptcha来产生验证码和验证 http://jcaptcha.sourceforge.net/
下面的程序代码参考和仿照了springside3的实现
1.在web.xml上增加验证码的过滤器
创建验证码图形的Filter
<filter-mapping>
<filter-name>jcaptchaFilter</filter-name>
<url-pattern>/jcaptcha.jpg</url-pattern>
</filter-mapping>
验证的Filter
<filter-mapping>
<filter-name>jcaptchaFilter</filter-name>
<url-pattern>/check</url-pattern>
</filter-mapping>
自己写用jcaptcha产生验证码和验证实现的filter
<filter>
<filter-name>jcaptchaFilter</filter-name>
<filter-class>security.jcaptcha.JCaptchaFilter</filter-class>
<init-param><!--失败时的返回页面 -->
<param-name>failureUrl</param-name>
<param-value>/head.vm</param-value>
</init-param>
</filter>
2.获取验证码
在介绍图形码过滤器前,介绍一下jcaptcha产生验证码的api和code
验证码产生和验证需要jcaptcha的com.octo.captcha.service.image.DefaultManageableImageCaptchaService类的服务
产生验证码,并以图片信息输出到客户端
获取验证码的方法: captchaService.getChallengeForID(id)
根据你的id随机产生验证码
代码片段
protected void genernateCaptchaImage(final HttpServletRequest request, final HttpServletResponse response)
throws IOException {
//设置response,输出图片客户端不缓存
response.setDateHeader("Expires", 1L);
response.addHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache, no-store, max-age=0");
response.setContentType("image/jpeg");
ServletOutputStream out = response.getOutputStream();
//获取验证码
try {
String captchaId = request.getSession(true).getId();
//用session的id来产生验证码
BufferedImage challenge = (BufferedImage) captchaService.getChallengeForID(captchaId, request.getLocale());//获取验证码
ImageIO.write(challenge, "jpg", out);
out.flush();
} catch (CaptchaServiceException e) {
System.out.println(e);
} finally {
out.close();
}
}
在显示层,展示验证码<img id="captchaImg" src="显示验证码的过滤器url"/>
3.验证码验证
在介绍图形码过滤器前,介绍一下jcaptcha产生验证码的api和code
验证码产生和验证需要jcaptcha的com.octo.captcha.service.image.DefaultManageableImageCaptchaService类的服务
产生验证码,并以图片信息输出到客户端
获取验证码的方法: captchaService.validateResponseForID(captchaID, 输入的验证码);
返回值true 表示验证通关,false表示验证还没有通过
代码片段
protected boolean validateCaptchaChallenge(final HttpServletRequest request) {
try {
//获取产生验证码的id,用session的id来产生验证码
String captchaID = request.getSession().getId();
//获取输入的验证码
String challengeResponse = request.getParameter(captchaParamterName);
return captchaService.validateResponseForID(captchaID, challengeResponse);
} catch (CaptchaServiceException e) {
System.out.println(e);
return false;
}
}
分享到:
相关推荐
java生成验证码图片,资源包括自定义图片尺寸和验证码长度,每个字符随机偏移角度,字符平滑边缘,含干扰线、噪点和背景扭曲。
java生成验证码源码包括彩色验证码 包括jsp生成验证码和彩色验证码
java生成验证码的工具类,这个现在有依赖可以直接引入调用,但这个工具类没有引入依赖,大家也容易看懂代码,理解其含义。也可直接去工具类中调整生成验证码的宽度、高度、颜色、背景颜色、生成的随机数数量、干扰线...
是一个完整的例子!生成的验证码有中文的,英文的,数字的
java生成验证码的参考资料(中英文验证码),这是网络资料的收集,大家可以试一下,效果应该不错,感谢网友的提供。
java生成验证码代码 主要:一个生成验证码的servlet,一个jsp页面,另外还需要配置下web.xml即可
java生成验证码图片的文件已完成测试
使用Java生成验证码的工具类,使用说明:http://blog.csdn.net/wqh8522/article/details/72791218
java生成验证码
Java生成验证码(包含gif动画验证码)
用JAVA生成验证码的操作,与大家分享下
自己写的验证码,不仅能够实现加干扰条,还能实现字符倾斜,是数字和字母的混合
验证码是每个网站必不可少的要素...此代码就是用servlet生成随机生成验证码
这是个Java Web验证码示例,用于生成验证码(位数可以自己通过验证码类修改),并进行jsp页面展示和验证,可以直接附加到myeclipse下运行,上传上来与Java技术开发朋友分享。
java 生成图片验证码 带干扰线等