如何通过Kaptcha在Web页面生成验证码
kaptcha 是一个扩展自 simplecaptcha 的验证码库,方便我们不再写此类功能。
他的代码是谷歌托管的,可以从这里下载http://code.google.com/p/kaptcha/
工程内已经附带了示例,可以方便开发者使用。
需要的操作就是把kaptcha-2.3.2.jar增加到工程内,然后配置访问图片的Servlet:
示例中的配置是:
<servlet-mapping> <servlet-name>Kaptcha</servlet-name> <url-pattern>/Kaptcha.jpg</url-pattern> </servlet-mapping>
也就是说访问Kaptcha.jpg时其实就是访问了输出验证码图片的Servlet。
示例中的KaptchaExample.jsp是调用页面,这里介绍了如何验证用户输入是否和验证码符合。
但是没有如何刷新的操作,刷新其实很简单,这里稍微修改即可。
注意,必须加随机参数,否则读取缓存就不会有效果。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Kaptcha Example</title> <script type="text/javascript"> function refImg(){ document.getElementById("Kaptcha").src="<%=basePath%>Kaptcha.jpg?data="+Math.random(); } </script> </head> <body> <table> <tr> <td><img id="Kaptcha" src="<%=basePath%>Kaptcha.jpg" onclick="refImg()"></td> <td valign="top"> <form method="POST"> <br>sec code:<input type="text" name="kaptchafield"><br /> <input type="submit" name="submit"> </form> </td> </tr> </table> <br /> <% String c = (String)session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY); String parm = (String) request.getParameter("kaptchafield"); out.println("Parameter: " + parm + " ? Session Key: " + c + " : "); if (c != null && parm != null) { if (c.equals(parm)) { out.println("<b>true</b>"); } else { out.println("<b>false</b>"); } } %> </body> </html>
另外修改后使用的是绝对路径,在实际开发中应该注意这个问题。
做示例时使用的是kaptcha-2.3.2,见附件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
解决FontConfiguration.getVersion报空指针异常的问题
这篇文章主要介绍了解决FontConfiguration.getVersion报空指针异常的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-06-06java eclipse 出现 xxx cannot be resolved to a type 错误解决方法
这篇文章主要介绍了java eclipse 出现 xxx cannot be resolved to a type 错误解决方法的相关资料,需要的朋友可以参考下2017-03-03SpringBoot使用SensitiveWord实现敏感词过滤
这篇文章主要为大家详细介绍了SpringBoot如何使用SensitiveWord实现敏感词过滤功能,文中示例代码讲解详细,感兴趣的小伙伴可以了解一下2023-01-01详述IntelliJ IDEA提交代码前的 Code Analysis 机制(小结)
本篇文章主要介绍了详述IntelliJ IDEA提交代码前的 Code Analysis 机制(小结),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-11-11Java报错:FileNotFoundException的解决方案
在Java编程中,FileNotFoundException 是一种常见的受检异常,通常发生在试图打开一个不存在的文件或文件路径错误时,本文将详细探讨FileNotFoundException的成因、解决方案以及预防措施,帮助开发者理解和避免此类问题,需要的朋友可以参考下2024-06-06Java I/O (Input/Output)文件字节流举例详解
Java的输入输出流(IO)是用于与外部设备(如文件、网络连接等)进行数据交互的机制,下面这篇文章主要给大家介绍了关于Java I/O (Input/Output)文件字节流的相关资料,需要的朋友可以参考下2024-08-08Java if(boolean)和if(boolean=true)区别解析
这篇文章主要介绍了Java if(boolean)和if(boolean=true)区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-02-02
最新评论