当前位置: 萬仟网 > IT编程>开发语言>JavaScript > 如何通过Kaptcha在Web页面生成验证码

如何通过Kaptcha在Web页面生成验证码

2020年10月17日  | 萬仟网IT编程  | 我要评论
kaptcha 是一个扩展自 simplecaptcha 的验证码库,方便我们不再写此类功能。他的代码是谷歌托管的,可以从这里下载工程内已经附带了示例,可以方便开发者使用。需要的操作就是把kaptch

kaptcha 是一个扩展自 simplecaptcha 的验证码库,方便我们不再写此类功能。

他的代码是谷歌托管的,可以从这里下载

工程内已经附带了示例,可以方便开发者使用。

需要的操作就是把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,见附件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
Copyright © 2017-2020  萬仟网 保留所有权利. 粤ICP备17035492号