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

验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码) 正常来说, 127.0.0.1:8080/index.html 和 localhost:8080/index.html 都可以,但是博主自己验证包括找了些其他博主验证,localhost:8080/index.html 访问的话是存在些许bug的,后端取session可能为空,原因是session没有设置。随着安全性的要求越来越⾼, ⽬前项⽬中很多都使⽤了验证码, 验证码的形式也是多种多样, 更复杂的图形验证码和行为验证码已经成为了更流⾏的趋势. 阅读详情
步骤一:

在项目中添加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



【软碟通 | UltraISO】刻录光盘教程(制作U盘启动盘) 前言 今天老师说办公室的电脑有点卡,让我给重新安装一个 Windows 7 系统。于是就用软碟通(UltraISO)在 U 盘上刻录了一个 Windows 7 镜像,然后给老师重装了系统。顺便把制作 U 盘启动盘的教程也分享给大家。 软件 UltraISO v9.7.1.3519:点击跳转(密码:dd2k) 教程 将 U 盘插到电脑上,然后鼠标右击选择格式化(制作启动盘必须格式化) 点击文件-打开 选择下载好的系统镜像(如:Windows 7) 点击启动-写入硬盘映像 选择硬盘 阅读详情

相关推荐

OSGEarth三维可视化避坑指南:如何高效加载SHP/TIF地理数据?

本文详细介绍了OSGEarth在三维地球可视化中高效加载SHP/TIF地理数据的实战策略,包括空间参考系配置、性能优化、二三维联动等关键技巧。通过具体案例和代码示例,帮助开发者解决坐标偏移、性能卡顿等常见问题,提升三维GIS开发效率。

weixin_29216957的博客 222

验证码Kaptcha的使用

Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码。以图片的形式显示,从而无法进行复制粘贴。

不死鸟的传说 1万+

zabbix6.0.4拓扑图链路显示流量

1. 背景介绍 网络流量监控是网络管理员必备功课,以前研究cacti的weathermap插件,网络流量大小和拥塞情况一清二楚,随着cacti的没落,weathermap插件也不能再继续使用,此时就需要学习了解新的替代方案。 经过研究和实际测试,发现zabbix的拓扑图有这个功能。 以下验证了zabbix的拓扑图显示线路流量的功能。 2. Zabbix 6显示拓扑图流量过程 选择监测-拓扑图 点进Local ne...

u013930899的博客 8478

你知道么?如何使用java生成图片验证码——补充KaptchaServlet验证码的使用

你知道么?如何使用java生成图片验证码——补充KaptchaServlet验证码的使用

单调枯燥的CC的博客 1634

YonSuite如何新增用户并分配角色角色授权图文教程

用友YonSuite产品基础教学

ct341688的博客 617

IC/FPGA笔试/面试题分析(七)建立时间和保持时间类型考题汇总分析

自从召集2020届校招同行加入新建立的“IC/FPGA校招笔试面试交流群“,见识到了很多关于建立时间和保持时间分析的题目,在为别人解答疑惑,以及别人为自己解答疑惑的同时,自己对于知识的理解更加深刻了。 对于建立时间而言,从单独的对触发器的建立时间和保持时间的分析到了对电路(系统)的建立时间到保持时间的分析,前者是核心,后者是扩展,后者建立在前者的基础之上进行推到得到,同时也是芯片内部实际遵循的时...

Reborn Lee 1万+

Cookie、Kaptcha

目录 一、本质 二、Cookie在浏览器和服务器之间的传递 1.没有Cookie的状态 2.创建Cookie对象并返回 三、Cookie时效性 1.理论 2.代码 3.会话和持久化Cookie对比 四、Cookie的domain和path 五、Cookie的应用 六、Kaptcha 1.为什么需要验证码? 2.Kaptcha如何使用? kaptcha.jar链接 3.Kaptcha验证码图片的各个属性 4.KaptchaServlet生成验证 一、本质 在浏览器端临时

博客的博客 506

STM32F103 超声波风速风向仪实战:0.1m/s精度风洞标定与OLED显示(附源码)

本文详细介绍了基于STM32F103的超声波风速风向仪设计与实现,通过超声波时间差测量技术实现0.1m/s高精度测量。文章涵盖硬件设计、算法实现、风洞标定及OLED显示等关键环节,提供完整源码,适用于气象监测、风力发电等领域。

weixin_42532938的博客 275

Java笔记-使用Kaptcha验证码框架

使用Kaptcha这个验证码框架用起来,比自己写简单 首先设置maven项目: <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> ...

IT1995的博客 5849

【软考之软件设计师】学习笔记

interface 接口implements 实现接口(与接口配套使用)接口里要是有方法定义,子类就会实现。

云轩阁 2533

C#实现每日定时执行制定程序(附完整源码)

C#实现每日定时执行制定程序(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 862

google kaptcha 验证码组件使用简介

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

lisheng19870305的专栏 4834

5.7 医疗 Agent 实战:构建一个懂“望闻问切”的智能医疗咨询助手

本文介绍了如何构建一个智能医疗咨询助手项目,通过LoRA微调和vLLM部署技术,将通用大模型改造为专业"AI皮肤科医生"。项目采用精简架构:Streamlit前端直接与vLLM推理服务通信,重点展示了微调模型在专业性、安全性和同理心方面的显著提升。实施步骤包括:部署微调模型、构建交互界面,并通过对比测试验证微调效果。项目强调AI仅作为咨询助手而非医生替代品,始终以引导用户寻求专业医疗帮助为核心目标,体现了负责任AI应用的关键原则。

yonggeit的博客 2962

kaptcha验证码插件的使用

验证码插件Kaptcha的使用,SpringMVC中使用Kaptcha验证码插件

CBeann的博客 2498

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Web项目注册时使用Google插件kaptcha进行5位验证码的生成!

Kaptcha是Google插件库中一个非常实用的验证码生成工具,我们可以在web.xml中通过配置验证码的各种属性(颜色、大小等等),它以图片的形式展示出来,5位数的字符随机生成的,为前端传统生成验证码操作,代码量就省了不少! 1.引入到web工程WEB-INF下lib中的Jar包 2.kaptcha的Jar的结构分析 4.查看KaptchaServlet的源码 public class...

林大侠 833

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

kaptcha验证码使用

官方地址:https://code.google.com/p/kaptcha/w/list kaptcha 是一个很有用的验证码生成工具。有了它,你能够生成各种样式的验证码,由于它是可配置的。 kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.KaptchaServlet,生成一个图片。 同一时候将生成的验证码字符串放到 HttpSessi...

weixin_30621919的博客 205

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java毕设实战:基于Spring Boot+MyBatis的健身房会员管理系统

在Java后端开发中,管理系统是检验基础功底的经典课题,其核心涵盖CRUD、模糊查询、日期计算、状态管理等高频技能。Spring Boot简化了项目配置,MyBatis则保证了SQL的可控性,两者结合能快速构建规范的分层架构。通过实际开发健身房会员管理系统,可以串联起需求分析、数据库设计、事务控制、页面渲染与异常排查的完整流程。此类项目不仅适合作为毕业设计,也是巩固Java Web工程能力、积累面试谈资的实用切入点。

weixin_34025151的博客 358

SpringMVC +maven 实现动态验证码----KaptchaServlet---API

上述的src="${pageContext.request.contextPath}/captcha"是请求kaptchaServlet的验证码去。-- 这一步将验证码图片里的字母存储在了session中 这样后端可以取到数据 -->-- session.setAttribute("captcha","验证码") -->验证码的生成的图片的文本值key存储在这里面kaptcha.session.key。只需要我们在controller取出key做与用户输入的值是否相等匹配即可。

m0_64576019的博客 462

利用kaptcha实现验证码(Servlet实现)

利用kaptcha实现验证码

wdhouyigege的博客 1356

kaptcha验证码使用(JAVA版)

效果图: 官方地址:https://code.google.com/p/kaptcha/w/list kaptcha 是一个非常实用的验证码生成工具。有了它,你可以生成各种样式的验证码,因为它是可配置的。kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.KaptchaServlet,生成一个图片。同时将生成的验证码字符串放到 HttpSession中。 使用kaptcha可以方便的配置: 验证码的字体 验证码字体的大小 验证码

zgphacker2010的专栏 998

kaptcha验证码工具包的使用学习记录

kaptcha验证码工具包的使用学习记录1.创建一个web项目:2.在web.xml文件配置生成验证码的KaptchaServlet&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi=&quot

GoodJob 428

Kaptcha随机验证码的使用方法,超简单,超实用

1、把下载的kaptcha-2.3.2.jar添加到lib中 2、配置web.xml增加servlet <servlet> <servlet-name>Kaptcha</servlet-name> <servlet-class>com.google.code.kaptcha.servlet.KaptchaServ...

望远烬的博客 1267

用Kaptcha第三方包做验证码验证

Kaptcha是google提供的一个第三方的包,可以做验证码验证。他是运行原理把验证码存放到session域中,当用到的时候,从session域中取出来,然后与输入的验证码进行对比,就可以了。接下来,来看代码。 首先,先导入kaptcha-2.3.2.jar包。之后再web.xml中配置验证码需要的信息。我先列举一下都可以配置什么信息。 kaptcha.border 验证码图片的边框,可以

New soul 2341

转】使用kaptcha生成验证码

原博文出自于:  http://www.cnblogs.com/xdp-gacl/p/4221848.html      感谢!       kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小、颜色、显示的字符等等。下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验。   一、搭建测试环境 1.1、创建Web测试项目   新...

weixin_34029949的博客 72

kaptcha实现验证码(Servlet)

一、下载架包和依赖架包,并导入项目中 链接 https://mvnrepository.com/artifact/com.github.penggle/kaptcha https://mvnrepository.com/artifact/com.jhlabs/filters/2.0.235-1 二、配置web.xml <servlet> <!-- ...

lxp_1101的博客 1006
上一篇: javascript jsp页面动态显示系统时间 测试可用 多浏览器通过测试 (2)
下一篇: 验证码 verifycode 留存可用
南京煜之隆
博客等级 码龄13年 34粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值