SpringMVC项目中使用kaptcha生成验证码

原创 2016年06月01日 15:09:34

一、简介

kaptcha是一个基于SimpleCaptche的验证码开源项目

二、使用

1、添加jar包依赖

如果你使用maven来统一管理jar包,则在工程的pom.xml中添加dependency

<span style="font-size:14px;"><!-- kaptcha -->  
<dependency>  
    <groupId>com.google.code.kaptcha</groupId>  
    <artifactId>kaptcha</artifactId>  
    <version>2.3.2</version>  
</dependency> </span>

2、添加kaptcha的配置文件spring-kaptcha.xml并定义类captchaProducer

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.1.xsd"
	default-autowire="byName">

	<bean
		id="captchaProducer"
		class="com.google.code.kaptcha.impl.DefaultKaptcha">
		<property name="config">
			<bean class="com.google.code.kaptcha.util.Config">
				<constructor-arg>
					<props>
						<prop key="kaptcha.border">no</prop>
						<prop key="kaptcha.border.color">105,179,90</prop>
						<prop key="kaptcha.textproducer.font.color">blue</prop>
						<prop key="kaptcha.image.width">250</prop>
						<prop key="kaptcha.textproducer.font.size">90</prop>
						<prop key="kaptcha.image.height">90</prop>
						<prop key="kaptcha.session.key">code</prop>
						<prop key="kaptcha.textproducer.char.length">4</prop>
						<prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop>
						<prop key="kaptcha.textproducer.char.string">0123456789</prop>
					</props>
				</constructor-arg>
			</bean>
		</property>
	</bean>
</beans>

3、使用注解的方式把定义的Bean注入到生成验证码的Controller中

@Autowired
private Producer captchaProducer;

4、生成验证码

@Controller
@RequestMapping("/corp/portal")
public class CorpPortalController extends BaseController {
         /* 企业找回密码验证码 */
     private static final String CORP_FIND_PWD_AUTH_CODE = "corpFindPwdAuthCode"; 
         /**
	 * 生成找回密码的验证码
	 */
	@RequestMapping("/findPwdAuthCode.htm")
	public void findPwdAuthCode(HttpServletRequest request, HttpServletResponse response, HttpSession session)
			throws IOException {
		/* Expires过时期限值,指浏览器或缓存服务器在该时间点后必须从真正的服务器中获取新的页面信息 */
		response.setDateHeader("Expires", 0);
		/* 浏览器和缓存服务器都不应该缓存页面信息 */
//		response.setHeader("Cache-Control", "no-cache");
		/* 请求和响应的信息都不应该被存储在对方的磁盘系统中 */
//		response.setHeader("Cache-Control", "no-store");
		/* 浏览器和缓存服务器都可以缓存页面信息 */
//		response.setHeader("Cache-Control", "public");
		/* 对于客户机的每次请求,代理服务器必须向服务器验证缓存是否过时 */
//		response.setHeader("Cache-Control", "must-revalidate");
		response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
		/* 不让浏览器或中间缓存服务器缓存页面,配合Expires 置为0限定更保险 */
		response.setHeader("Pragma", "no-cache");
		/*
		 * response.setContentType(MIME)的作用是使客户端浏览器区分不同类型的数据,
		 * 并根据不同的MIME调用浏览器内部不同的程序嵌入模块来处理相应的数据
		 */
		response.setContentType("image/jpeg");
		/* 生成验证码 */
		String capText = captchaProducer.createText();
		/* 保存验证码到Session中 */
		request.getSession().setAttribute(CORP_FIND_PWD_AUTH_CODE, capText);
		/* 使用给定文字创建图片 */
		BufferedImage bi = captchaProducer.createImage(capText);
		/* 数据写入输出流 */
		ServletOutputStream out = response.getOutputStream();
		ImageIO.write(bi, "jpg", out);
		try {
			out.flush();
		} finally {
			out.close();
		}
	}
}







版权声明:本文为博主原创文章,未经博主允许不得转载。

SpringMVC集成开源的验证码框架Kaptcha实现验证码效果

流程:本项目是通过maven创建的,首先需要导入Kaptcha的jar包,然后在spring中配置Kaptcha的属性,还需要实现一个生成验证码的controller类,最后在前端显示。 导...
  • chengxuzaza
  • chengxuzaza
  • 2017年03月08日 22:47
  • 1892

springMVC Kaptcha 实现验证码功能

springMVC Kaptcha 实现验证码功能
  • educast
  • educast
  • 2015年10月31日 18:04
  • 2979

SpringMVC+kaptcha实现图形验证码

SpringMVC实现图形验证码
  • tzdwsy
  • tzdwsy
  • 2015年11月08日 16:10
  • 1789

基于spring mvc的图片验证码实现

本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证。 首看后台实现代码:@RequestMapping({"authCode"}) public voi...
  • duan9421
  • duan9421
  • 2016年01月28日 10:49
  • 13339

springMVC中前台取后台生成的验证码

1.@Controller类:ControllerClass.java package com.caiyl.src.base; import java.io.IOException; import ...
  • cai7095576
  • cai7095576
  • 2015年04月18日 20:47
  • 4425

springmvc 生成验证码

第一步:生成随机数或者英文 public class VerifyCodeUtils {     private static final Logger logger = LoggerFact...
  • u011563331
  • u011563331
  • 2016年05月05日 15:23
  • 1931

java springmvc实现验证码功能

先看效果图: 思路: 首先验证码是一张图片,是一张有着随机字母、数字、图案等组成的图片,所以这图片肯定不是固定不变的,肯定是由后端随机制造出来的,前端用img的src去不断访问...
  • qq_35572020
  • qq_35572020
  • 2016年11月04日 11:33
  • 2534

spring+kaptcha-2.3.2jar图片验证码

原代码路径:http://www.open-open.com/lib/view/open1395238908947.html 原代码不是本人所写,我只是使用者,感觉出来的效果比自己写的图片验证码好,...
  • tmyygy1987
  • tmyygy1987
  • 2017年02月23日 21:39
  • 387

SpringMVC项目中使用kaptcha生成验证码

一、简介 kaptcha是一个基于SimpleCaptche的验证码开源项目 二、使用 1、添加jar包依赖 如果你使用maven来统一管理jar包,则在工程的pom.xml中...
  • biedazhangshu
  • biedazhangshu
  • 2016年06月01日 15:09
  • 1472

struts2使用kaptcha实现验证码功能

1.下载kaptcha-2.3.2.jar,拷贝到项目中; 2.首先在web.xml文件中添加以下代码(包括struts2过滤器和Kaptcha的相关配置): ...
  • u010710857
  • u010710857
  • 2015年04月15日 16:25
  • 1103
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringMVC项目中使用kaptcha生成验证码
举报原因:
原因补充:

(最多只允许输入30个字)