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

本文主要是介绍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;" οnclick="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



这篇关于GOOGLE kaptcha 验证码生成插件 servlet/jsp项目中使用步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1816

相关文章

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp