GOOGLE kaptcha 验证码生成插件 servlet/jsp项目中使用步骤

步骤一:

在项目中添加kaptchar的jar包,下载地址:http://code.google.com/p/kaptcha/(建议使用迅雷下载)

步骤二:

配置web.xml,详细配置如下(这里不是所有的配置,这里的参数还有很多可以酌情精简):

 <!-- 配置验证码插件servlet类 -->
  <servlet>
    <servlet-name>kaptcha</servlet-name>
    <servlet-class>
  		com.google.code.kaptcha.servlet.KaptchaServlet
  	</servlet-class>
  	<!-- 给验证码插件servlet类配置参数 -->
    <!-- 边框设置 yes  no -->
    <init-param>
      <param-name>kaptcha.border</param-name>
      <param-value>no</param-value>
    </init-param>
    <!-- 边框颜色 颜色名称 例如:red blue black等 也可以是 RGB:105,179,90 -->
    <init-param>
      <param-name>kaptcha.border.color</param-name>
      <param-value>red</param-value>
    </init-param>
    <!-- 边框宽度 -->
    <init-param>
      <param-name>kaptcha.border.thickness</param-name>
      <param-value>5</param-value>
    </init-param>
    <!-- 产生验证码的字符源头 兼容中文的 -->
    <init-param>
      <param-name>kaptcha.textproducer.char.string</param-name>
      <param-value>2345共2354阿斯asdf蒂芬2345爬墙2345额问题了ewry空1254间的股fktiul份的y7u12354o私人254认可ry13254iu的身份报123告快乐</param-value>
    </init-param>
    <!-- 生成结果的字符个数 -->
    <init-param>
      <param-name>kaptcha.textproducer.char.length</param-name>
      <param-value>5</param-value>
    </init-param>
    <!-- 生成结果的字符字体 -->
    <init-param>
      <param-name>kaptcha.textproducer.font.names</param-name>
      <param-value>微软雅黑,宋体,楷体</param-value>
    </init-param>
    <!-- 生成结果的字符大小 -->
    <init-param>
      <param-name>kaptcha.textproducer.font.size</param-name>
      <param-value>40</param-value>
    </init-param>
    <!-- 生成结果的字符 颜色 -->
    <init-param>
      <param-name>kaptcha.textproducer.font.color</param-name>
      <param-value>blue</param-value>
    </init-param>
    <!-- 生成结果的字符 字间距 -->
    <init-param>
      <param-name>kaptcha.textproducer.char.space</param-name>
      <param-value>2</param-value>
    </init-param>
    <!-- 干扰线 生成器 -->
    <init-param>
      <param-name>kaptcha.noise.impl</param-name>
      <param-value>com.google.code.kaptcha.impl.DefaultNoise</param-value>
    </init-param>
    <!-- 干扰线 颜色 -->
    <init-param>
      <param-name>kaptcha.noise.color</param-name>
      <param-value>BLACK</param-value>
    </init-param>
    <!-- 干扰线 背景渐变颜色  从左侧向右渐变  -->
    <init-param>
      <param-name>kaptcha.background.clear.from</param-name>
      <param-value>green</param-value>
    </init-param>
    <!-- 干扰线 背景渐变颜色  从右侧向左渐变  -->
    <init-param>
      <param-name>kaptcha.background.clear.to</param-name>
      <param-value>yellow</param-value>
    </init-param>
    <!-- 验证码图片宽度 -->
    <init-param>
      <param-name>kaptcha.image.width</param-name>
      <param-value>200</param-value>
    </init-param>
    <!-- 验证码图片高度 -->
    <init-param>
      <param-name>kaptcha.image.height</param-name>
      <param-value>50</param-value>
    </init-param>
  </servlet>
  <!-- 验证码请求名  映射 -->
  <servlet-mapping>
    <servlet-name>kaptcha</servlet-name>
    <url-pattern>/yzm</url-pattern>
  </servlet-mapping>

以上是针对于使用google插件生成验证码的参数配置,不用自己写出验证码生成的工具类了。

  步骤三:

在jsp页面中添加图片标签,标签的src静态资源请求地址为上面配置好的请求名 yzm,具体代码如下:

 <br>
    <hr>
    <br>
    <form action="kaptchatest" method="post">
	    <img title = "点我换一张" alt="" src="yzm" style="cursor:pointer;" onclick="changeVerifyCode();">
    	<input type="text" name="yzm">
    	<br>
    	<input type="submit" value="测试验证码">
    </form>

    <script type="text/javascript">
		//点击切换验证码
		function changeVerifyCode(){
			img.src = "yzm?"+Math.floor(Math.random()*100);
		}
	</script>

步骤四:

创建servlet以响应表单提交的请求处理,及配置该servlet,代码如下:

package com.kaptcha.action;

	import java.io.IOException;
	import javax.servlet.ServletException;
	import javax.servlet.http.HttpServlet;
	import javax.servlet.http.HttpServletRequest;
	import javax.servlet.http.HttpServletResponse;

	public class KaptchaServlet extends HttpServlet {
		private static final long serialVersionUID = 1L;

		protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			//设置request编码方式
			request.setCharacterEncoding("utf-8");

			//获取表单提交参数
			String yzm = request.getParameter("yzm") ;
			System.out.println(yzm);

			//从session中获取google kaptcha 插件生成的验证码
			String googlecode = request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY).toString() ;
			System.out.println(googlecode);

			//比较验证码正确性
			System.out.println(googlecode.equalsIgnoreCase(yzm));  //true
		}
	}

********************************

  <servlet>
    <description></description>
    <servlet-name>KaptchaServlet</servlet-name>
    <servlet-class>com.kaptcha.action.KaptchaServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>KaptchaServlet</servlet-name>
    <url-pattern>/kaptchatest</url-pattern>
  </servlet-mapping>

步骤五:

重启服务器,地址栏输入jsp地址,即可测试结果

*************可以设置的参数,仅供参考:*************************

可以设置的参数,仅供参考:

kaptcha.border  是否有边框  默认为true  我们可以自己设置yes,no

kaptcha.border.color   边框颜色   默认为Color.BLACK

kaptcha.border.thickness  边框粗细度  默认为1

kaptcha.producer.impl   验证码生成器  默认为DefaultKaptcha

kaptcha.textproducer.impl   验证码文本生成器  默认为DefaultTextCreator

kaptcha.textproducer.char.string   验证码文本字符内容范围  默认为abcde2345678gfynmnpwx

kaptcha.textproducer.char.length   验证码文本字符长度  默认为5

kaptcha.textproducer.font.names    验证码文本字体样式  默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)

kaptcha.textproducer.font.size   验证码文本字符大小  默认为40

kaptcha.textproducer.font.color  验证码文本字符颜色  默认为Color.BLACK

kaptcha.textproducer.char.space  验证码文本字符间距  默认为2

kaptcha.noise.impl    验证码噪点生成对象  默认为DefaultNoise

kaptcha.noise.color   验证码噪点颜色   默认为Color.BLACK

kaptcha.obscurificator.impl   验证码样式引擎  默认为WaterRipple

kaptcha.word.impl   验证码文本字符渲染   默认为DefaultWordRenderer

kaptcha.background.impl   验证码背景生成器   默认为DefaultBackground

kaptcha.background.clear.from   验证码背景颜色渐进   默认为Color.LIGHT_GRAY

kaptcha.background.clear.to   验证码背景颜色渐进   默认为Color.WHITE

kaptcha.image.width   验证码图片宽度  默认为200

kaptcha.image.height  验证码图片高度  默认为50

时间: 2024-12-25 17:57:28

GOOGLE kaptcha 验证码生成插件 servlet/jsp项目中使用步骤的相关文章

google kaptcha 验证码组件使用简介

kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.KaptchaServlet,生成一个图片.同时将生成的验证码字符串放到 HttpSession中. 使用kaptcha可以方便的配置: 验证码的字体 验证码字体的大小 验证码字体的字体颜色 验证码内容的范围(数字,字母,中文汉字!) 验证码图片的大小,边框,边框粗细,边框颜色 验证码的干扰线(可以自

Google Kaptcha验证码的使用

原文:http://www.kailing.pub/article/index/arcid/92.html Kaptcha是什么? kaptcha 是谷歌开源的非常实用的验证码生成工具,基于SimpleCaptcha的开源项目.使用Kaptcha 生成验证码十分简单并且参数可以进行自定义.只需添加jar包配置下就可以使用,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验. 怎么使用Kaptcha? 1.首先要项

Spring MVC 中使用 Google kaptcha 验证码

验证码是抵抗批量操作和恶意登录最有效的方式之一. 验证码从产生到现在已经衍生出了很多分支.方式.google kaptcha 是一个非常实用的验证码生成类库. 通过灵活的配置生成各种样式的验证码,并将生成的验证码字符串放到 HttpSession 中,方便获取进行比较. 本文描述在 spring mvc 下快速的将 google kaptcha 集成到项目中(单独使用的话在 web.xml 中配置 KaptchaServlet). 1.maven 依赖 官方提供的 pom 无法正常使用,使用阿里

验证码生成(servlet)

一 效果如下: 二 java 代码如下: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import jav

jsp项目中整个项目没有问题但是servlet报错

项目没问题但是serverlet报错 项目右键 buildPath-->configure build path -->Myeclipse Library-->J2EE 1.3 Libraries 和 J2EE1.4 Library

jsp 项目中 web.xml 的作用

每个 web 应用的 WEB-INF 路径下(而且必须位于该路径)的 web.xml 文件被称为配置描述符. 对于 java web 应用而言,WEB-INF 是一个特殊的文件夹,web 容器会包含该文件夹下的内容,客户浏览器无法访问 WEB-INF 路径下的任何内容. 在 servlet2.5 规范之前,java web 的绝大部分组件都通过 web.xml 文件来配置管理. 从 servlet3.0 开始,也可以通过注解来配置管理 web 组件,因此 web.xml 文件可以变得更加简洁.

jsp项目中连接数据库解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的问题

报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 今天在做jsp连接数据库操作时,一直报加载不了驱动的错误,代码检查了很久都没错,重新导jar包也不行,最后又看了一遍同学的路径,原来是我把jar包放错了位置 ,应该放在WEB-INF中的lib下,而我放在了WEB下的lib中.然后又往里面拖了一下,成功了! then 原文地址:https://www.cnblogs.com/bibimonster/p/10392827.html

Servlet&amp;jsp基础:第五部分

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4289323.html JSP. 80 JSP源码生成... 81 将JSP页面配置成Servlet 84 JSP基础语法... 84 JSP模板元素... 84 JSP表达式... 84 JSP脚本... 84 JSP声明... 85 EL

servlet&amp;jsp高级:第三部分

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4289407.html EL表达式语言... 39 EL概述... 39 EL基本应用... 40 JSP标签的属性值中使用EL表达式... 40 JSP模板中使用EL表达式... 40 忽略JSP页面中的EL表达式... 40 忽略JSP页