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

 更新时间:2020年10月17日 11:12:18   作者:cuisuqiang  
这篇文章主要介绍了如何通过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,见附件。

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

相关文章

  • Linux如何寻找Java安装路径

    Linux如何寻找Java安装路径

    这篇文章主要介绍了Linux如何寻找Java安装路径问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 23种设计模式(1) java单例模式

    23种设计模式(1) java单例模式

    这篇文章主要为大家详细介绍了23种设计模式之java单例模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Spring RestTemplate使用方法示例总结

    Spring RestTemplate使用方法示例总结

    这篇文章主要介绍了Spring RestTemplate使用方法示例总结,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-04-04
  • springboot实现拦截器之验证登录示例

    springboot实现拦截器之验证登录示例

    本篇文章主要介绍了springboot实现拦截器之验证登录示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Java中生产者消费者问题总结

    Java中生产者消费者问题总结

    这篇文章主要介绍了Java中生产者消费者问题总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • IDEA2020 1.1中Plugins加载不出来的问题及解决方法

    IDEA2020 1.1中Plugins加载不出来的问题及解决方法

    这篇文章主要介绍了IDEA2020 1.1中Plugins加载不出来的问题,本文还给大家提到了IDEA 2020.1.1 找不到程序包和符号的问题,感兴趣的朋友跟随小编一起看看吧
    2020-06-06
  • Mybatis动态SQL的实现示例

    Mybatis动态SQL的实现示例

    这篇文章主要介绍了Mybatis动态SQL的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Java获得元素属性的注解信息的步骤

    Java获得元素属性的注解信息的步骤

    在Java编程中,注解是一种为代码添加元数据的方式,通过反射机制,我们可以获取元素属性上的注解信息,这个过程对于框架开发和元数据处理非常有用,能够实现更灵活的功能,对java获得元素属性的注解信息相关知识感兴趣的朋友一起看看吧
    2024-09-09
  • Spring boot 使用QQ邮箱进行一个验证登入功能

    Spring boot 使用QQ邮箱进行一个验证登入功能

    这篇文章主要介绍了Spring boot 使用QQ邮箱进行一个验证登入,主要包括qq邮箱开启权限和创建发送验证码的请求Controller,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Java后端Cookie实现(时间戳)代码实例

    Java后端Cookie实现(时间戳)代码实例

    这篇文章主要介绍了Java后端Cookie实现(时间戳)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12

最新评论