怎样通过SpringMVC生成图片验证码?

2023-05-16

生成图片验证码

  1. 首先要添加一个jar包。
    “kaptcha-2.3.2.jar”是一个java开源的验证码工具包,kaptcha 是一个非常实用的验证码生成工具。有了它,你可以生成各种样式的验证码,因为它是可配置的。kaptcha工作的原理是调用com.google.code.kaptcha.servlet.KaptchaServlet,生成一个图片。同时将生成的验证码字符串放到 HttpSession中。)
    kaptcha-2.3.2.jar下载
  2. Springmvc-servlet.xml 添加配置,创建验证码bean。
<!-- 配置验证码属性 -->
	 <bean id="config" class="com.google.code.kaptcha.util.Config">
	 	<constructor-arg>
	 		<props>
	 			<prop key="kaptcha.textproducer.char.length">4</prop>
	 			<prop key="kaptcha.image.width">150</prop>
	 			<prop key="kaptcha.image.height"></prop>
	 		</props>
	 	</constructor-arg>
	 </bean>
	 
	 <!-- 生成验证码对象 -->
	 <bean id="producer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
	 	<property name="config" ref="config"></property>
	 </bean>
  1. 创建验证码Controller自动装配验证码对象
@Autowired
	private DangDangUserService userservice;
	//自动装配验证码对象
	@Autowired
	private Producer producer;
//获取验证码
	@RequestMapping("/validateCode")
	public void validateCode(HttpSession session,HttpServletResponse response) {
		//获取验证码字符串
		String kaptcha = producer.createText();
		//保留验证码,存储在session中
		session.setAttribute("kaptcha", kaptcha);
		//把字符串加干扰线装进图片
		BufferedImage image = producer.createImage(kaptcha);
		//然后用流的方式把图片响应给请求端
		try {
			ImageIO.write(image,"jpg",response.getOutputStream());
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
  1. 准备前端页面

全局首次加载验证码

//全局加载
		$(function(){
			//加载验证码
			$("#imgVcode").attr("src","${pageContext.request.contextPath}/user/validateCode.do");
			
		});

刷新加载验证码

<tr>
	<td valign="top" class="w1">验证码:</td>
	<td>
		<img class="yzm_img" id='imgVcode' src="#" /> 
		<input name="code" type="text" id="txtVerifyCode" class="yzm_input" onblur="checkVerifyCode()"/>
		<div class="text_left t1">
			<p class="t1">
				<span id="vcodeValidMsg">请输入图片中的四个字母,不区分大小写。</span> <span
					id="number.info" style="color:red"></span> <a
					href="javascript:void(0)" 
					onclick="document.getElementById('imgVcode').src='${pageContext.request.contextPath}/user/validateCode.do?time='+(new Date()).getTime();">看不清楚?换个图片</a>
			</p>
			<a style="color:red;" id="codeInfo"></a>
		</div>
	</td>
</tr>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎样通过SpringMVC生成图片验证码? 的相关文章

  • 基于 java+springboot 工资管理系统设计和实现

    博主介绍 xff1a 5年java开发经验 xff0c 专注Java开发 定制 远程 指导等 csdn特邀作者 专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例 500套 欢迎点赞 收藏 留言 文末获取源码联系方式 目
  • ubuntu 安装gcc 或g++ 时提示未发现软件包 gcc或g++

    问题 xff1a 安装gcc 或g 43 43 时提示未发现软件包 xff1f 1 这时 xff0c 只需更新apt get即可 xff0c 那么apt get是什么呢 xff1f apt get xff0c 是一条linux命令 xff0
  • ubuntu设置固定ip地址的方法

    ubuntu设置固定ip的方法 问题 xff1a 在连接虚拟机上的mysql数据库时 xff0c 发现连接不上了 检查了数据库的连接信息后 xff0c 发现并没有问题 xff0c 然后去虚拟机上查看ip地址 xff0c 发现是ip地址发生了
  • 在VMware Workstation中ubuntu屏幕小如何解决?-安装vm tools工具

    在VMware Workstation中ubuntu屏幕小如何解决 xff1f 安装vm tools工具 问题 xff1a 安装好ubuntu后 xff0c 开机后发现屏幕太小或没有占满全屏 xff0c 如下图所示 xff1a 解决 xff
  • 美团3.25笔试记录-第一题

    第一题 xff1a 题目描述 xff1a 小美是一个火车迷 最近她在观察家附近火车站的火车驶入和驶出情况 xff0c 发现火车驶入和驶出的顺序并不一致 经过小美调查发现 xff0c 原来这个火车站里面有一个类似于栈的结构 xff0c 如下图
  • Java中的取模(Math.floorMod())与取余(%)

    在Java中运算符 并不是取模运算 Modulo Operation xff0c 而是取余运算 Complementation 那么取模运算和取余运算的区别是什么呢 xff1f 计算方法 对于整数 a b 来说 xff0c 取模运算和取余运
  • redis的持久化策略

    redis提供持久化策略 xff0c 在适当的时机采用适当的手段把内存中的数据持久化到磁盘中 xff0c 每次redis服务启动时 xff0c 都可以把磁盘上的数据再次加载到内存中使用 RDB策略 xff08 数据快照模式 xff09 xf
  • HashMap的7种遍历方式

    HashMap的遍历方式 从大方向来说 xff0c HashMap遍历方式可以分为4类 xff1a 迭代器 xff08 Iterator xff09 方式遍历 xff1b For Each方式遍历 xff1b Lambda表达式遍历 xff
  • C语言中如何计算结构体的大小

    由于存储变量地址对齐的问题 xff0c 计算结构体大小的3条规则 xff1a 结构体的大小由n个 结构体中最大的那个类型 的大小模块组成 xff08 n lt 61 成员个数 xff09 xff1b 一个模块中 xff0c 可以存储多个成员
  • java多线程七大编程题(十分受用)

    前置须知知识 java多线程的实现方式主要由两种 一 创建子类继承Thread类 xff0c 重写run方法 span class token keyword public span span class token keyword cla
  • Java笔记(5)——类的继承、访问控制、super关键字

    在类中 xff0c 不写构造方法 xff0c 相当于执行了默认的无参构造方法 xff1b 写了有参构造方法 xff0c 则只执行有参构造方法 xff0c 默认的无参构造方法则会被屏蔽掉 xff1b 若想拥有有参和无参构造方法 xff0c 则
  • 配置maven使用本地仓库

    由于工作时是在内网环境 xff0c maven无法连接互联网 xff0c 所以只能事先将jar下载到本地 xff0c 然后通过配置pom文件 xff0c 将jar引用至本地仓库即可 1 首先 xff0c 我们需要打开本地的仓库 xff0c
  • Java中常用的几种JSON格式的转换

    JSON在传输数据时 xff0c 起到了特别大的作用 xff0c 因此出现了各种各样五花八门的JSON转换第三方包 xff0c 在这里做一个汇总 xff0c 总结一些常用的 目录 com alibaba fastjson 常用的API Ls
  • ESP32C3驱动中景园ST7789tft屏

    编译器 xff1a Arduino IDE 2 0 4 材料 xff1a 杜邦线8根 第一步 xff1a 安装所需要的库 xff0c TFT eSPI 43 Digital Rain Animation 第二步 选择适应屏幕的大小型号和颜色
  • ubuntu16.04安装python3.6最新 踩坑无数的经验

    希望你看到这篇文章的时候 能够在筛选里选择最新发布的文章 我看了很多2019 2020的最热文章 xff01 结果全部安装失败 xff01 不是责怪他们的方法有问题 xff0c 而是你看他们文章的时间和他么你操作的时间有时间差 xff0c
  • 【已解决】Uncaught SyntaxError: Unexpected token ‘var‘

    问题描述 xff1a 注释问题 今天在用IDEA写JS的时候 xff0c 写到预加载事件前需要一个全局变量 xff0c 定义完之后 xff0c 习惯性的全局格式对齐 xff0c IDEA的语法提示并没有异常 xff0c 像这样 进入页面发现
  • Ubuntu 配置ssh教程

    安装的时候安装ssh服务 进入管理员root xff0c 进入管理员root有两种情况 xff1a 一 知道密码 xff0c 输入su root回车 xff0c 再输入密码 二 不知道密码 xff0c 首先输入sudo passwd roo
  • CentOS8如何安装bochs2.6.11(上)

    1 xff1a 下载压缩包 bochs2 6 11https sourceforge net projects bochs files bochs 2 6 11 2 xff1a 解压压缩包 tar span class token oper
  • Response.addHeader()和Response.setHeader()的区别,别再傻傻分不清;

    1 setHeader response setHeader mytest aa response setHeader mytest bb Header中 xff1a k1 mytest v1 34 bb 34 2 addHeader re
  • Ubuntu桌面更改显示管理器方式

    1 常见的显示管理器gdm3 xff0c lightdm xff0c sddm 安装方式 span class token function sudo span span class token function apt get span

随机推荐

  • Ubuntu忘记开机密码(初始化开机密码绝对有效)

    ubuntu忘记开机密码 xff08 无需root密码即可修改开机密码 xff09 1 重启ubuntu xff0c 随即长按shift进入grub菜单 xff1b 2 选择recovery mode xff0c 按 34 e 34 键进入
  • Java笔记(6)——多态、instanceof操作符和一个几何形体的例子

    1 多态 多态 xff1a 同样的类型变量 xff0c 调用同样的方法 xff0c 却产生完全不同的行为 当父类类型的变量指向子类的对象 xff0c 调用父类中已经被重写的方法时 xff0c 产生多态机制 在多态的情况下 xff0c 不能调
  • Windows Ubuntu双系统 设置启动方式

    文章目录 0 引言1 解决2 参考 0 引言 在安装双系统之后 xff0c 在启动的时候提供一个选项 xff0c 默认是Ubuntu的启动方式 xff0c 并且在几秒之后默认启动 xff0c 可能我们经常使用的是windows系统 xff0
  • Settings模块的简单设计

    Settings 模块简单设计 任务 1 在一级菜单页底部增加一行 xff0c 点击这行 xff0c 跳转到二级菜单 xff0c 在二级菜单 xff0c 有一行 xff0c 是开关按钮 xff0c 可以记录上次的选中状态 解决思路 首先在设
  • Ubuntu下鼠标无法点击解决方案

    大数据之Ubuntu学习笔记 Ubuntu环境下鼠标无法点击问题描述解决方法 Ubuntu环境下鼠标无法点击 问题描述 在Ubuntu下使用idea构建maven项目时 xff0c 鼠标无法点击 xff0c 但可以在屏幕上移动 解决方法 1
  • 树莓派VNC显示模糊

    网上有人说设置分辨率 xff0c 亲测设置完后并没有提升清晰度 还有人拿远程桌面和vnc对比 xff0c 说远程桌面非常清晰 xff0c 的确 xff0c 用远程桌面登录是特别清晰 以上两点说明 xff1a 不清晰不是树莓派本身的原因 xf
  • 虚拟机之vmtools踩坑全解

    1 测试虚拟机 xff1a Ubuntu 18 04 manjaro 19 02 kali 19 03 2 目的 xff1a 安装vmtools xff0c 来使虚拟机全屏 鼠标移动不延迟 剪切板共用 可以拖入文件等功能 3 作者自述 xf
  • 驱动使能DAC模块

    DAC的操作原理图如下 xff1a 输入数据从DIN进入16为的移位寄存器 xff0c 其中低2位必须为0 xff0c 高4位为无效数据 xff0c 中间的10位为有效数据 xff0c 将中间的10位有效数据上传到DAC寄存器 DAC寄存器
  • LeetCode多线程

    1114 按序打印 我们提供了一个类 xff1a public class Foo public void one print 34 one 34 public void two print 34 two 34 public void th
  • 通过docker和gitlab实现项目自动打包部署

    Gitlab如何实现自动打包部署到docker集群 xff1f 预备知识 xff1a 开发模式转变 xff1a 瀑布模型 敏捷开发 DevOps DevOps xff1a Development Operations的组合词 CICD xf
  • JPA部分字段查询

    部分字段查询 实体类 编写想要查询字段的构造方法 span class token annotation punctuation 64 Data span span class token annotation punctuation 64
  • 数字马力一面

    1 自我介绍 2 讲下项目 xff0c 技术架构 3 xxl job的配置 xff0c 负载均衡策略讲一下 xff1f 基础配置如执行器名称 xff0c ip 端口等 负载均衡策略列举 xff1a 故障转移 xff0c 最近最久未使用 xf
  • Idea自动生成get()和set()方法的快捷操作

    1 首先创建好一个类 xff0c 里面可以暂时有2个属性 span class token keyword public span span class token keyword class span span class token c
  • 数字马力二面

    1 自我介绍下 2 介绍下项目 我们做的是CRM售后项目 xff0c 包括工单 xff0c 商返 xff0c 备件 xff0c 结算等九个模块 xff0c 我主要做的是工单 xff0c 备件模块 xff0c 工单模块就包括了各种报单 xff
  • 七层网络协议及三次握手四次挥手

    网络协议层次划分 为什么会有七层 xff0c 五层 xff0c 四层之说 七层协议 xff1a ISO定义的网络分层 xff0c 理论上的国际标准 四层协议 xff1a TCP IP分层 xff0c 实际的国际标准 五层协议 xff1a 我
  • git rebase 合并多次提交记录为一次提交

    使用git rebase 合并多次提交记录为一次提交 例 xff1a 下面有3次提交 xff0c 提交3的hash值为e79117d0 执行下面命令 span class token function git span rebase spa
  • 微服务整体架构图解

  • Spring自己注入自己,解决异步失效问题

    1 为什么会产生同一类内异步注解失效 xff1f 我们要清楚 xff0c 异步 xff0c 事务这些注解生效的原理 xff0c 在于通过切面创建了代理类 xff0c 通过操作代理类我们实现了异步 xff0c 事务 xff0c 但是当我们在同
  • 修改ubuntu(18.04)登录密码

    1 首先对Ubuntu系统进行重启 xff0c 在系统重启的过程中长按键盘shift键 xff0c 此时会进入GNU GRUB界面 xff0c 如下图所示 选择Advanced options for Ubuntu 按enter键进入 2
  • 怎样通过SpringMVC生成图片验证码?

    生成图片验证码 首先要添加一个jar包 kaptcha 2 3 2 jar 是一个java开源的验证码工具包 xff0c kaptcha 是一个非常实用的验证码生成工具 有了它 xff0c 你可以生成各种样式的验证码 xff0c 因为它是可