Spring MVC 使用kaptcha生成验证码
Spring MVC 使用kaptcha生成验证码
1.下载kaptcha-2.3.2.jar(或直接通过该文章附件下载)
http://code.google.com/p/kaptcha/downloads/list
kaptcha-2.3.2-jdk14.jar
kaptcha-2.3.2.jar
- 向spring.xml中添加bean
<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">yes</prop>
<prop key="kaptcha.border.color">105,179,90</prop>
<prop key="kaptcha.textproducer.font.color">blue</prop>
<prop key="kaptcha.image.width">125</prop>
<prop key="kaptcha.image.height">45</prop>
<prop key="kaptcha.textproducer.font.size">40</prop>
<prop key="kaptcha.session.key">code</prop>
<prop key="kaptcha.textproducer.char.length">4</prop>
<prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑 </prop>
</props>
</constructor-arg>
</bean>
</property>
</bean>
- 编写controller(设置)
@Controller
@RequestMapping("/yzm/")
public class YZMController {
@Autowired
private Producer producer;
@RequestMapping("/yzm")
public void yzm(HttpServletRequest request, HttpServletResponse response,
HttpSession session) throws IOException {
String lastYZM = (String) session.getAttribute("yzm");
System.out.println("*******************上一次的验证码是" + lastYZM+ "**********************");
// 设置浏览器不要对数据进行缓存
response.setDateHeader("Expires", 0);
// Set standard HTTP/1.1 no-cache headers.
response.setHeader("Cache-Control",
"no-store, no-cache, must-revalidate");
// Set IE extended HTTP/1.1 no-cache headers (use addHeader).
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
// Set standard HTTP/1.0 no-cache header.
response.setHeader("Pragma", "no-cache");
// return a jpeg
response.setContentType("image/jpeg");
String yzm = producer.createText();
System.out.println("*******************本次的验证码是" + yzm+ "**********************");
session.setAttribute("yzm", yzm);
BufferedImage image = producer.createImage(yzm);
OutputStream out = response.getOutputStream();
ImageIO.write(image, "jpg", out);
try {
out.flush();
} finally {
out.close();
}
}
}
- kaptcha可配置选项
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
Constant
描述
默认值
kaptcha.border
图片边框,合法值:yes , no
yes
kaptcha.border.color
边框颜色,合法值: r,g,b (and optional alpha) 或者 white,black,blue.
black
kaptcha.border.thickness
边框厚度,合法值:>0
kaptcha.image.width
图片宽
kaptcha.image.height
图片高
kaptcha.producer.impl
图片实现类
com.google.code.kaptcha.impl.DefaultKaptcha
kaptcha.textproducer.impl
文本实现类
com.google.code.kaptcha.text.impl.DefaultTextCreator
kaptcha.textproducer.char.string
文本集合,验证码值从此集合中获取
abcde2345678gfynmnpwx
kaptcha.textproducer.char.length
验证码长度
kaptcha.textproducer.font.names
字体
Arial, Courier
kaptcha.textproducer.font.size
字体大小
40px.
kaptcha.textproducer.font.color
字体颜色,合法值: r,g,b 或者 white,black,blue.
black
kaptcha.textproducer.char.space
文字间隔
kaptcha.noise.impl
干扰实现类
com.google.code.kaptcha.impl.DefaultNoise
kaptcha.noise.color
干扰 颜色,合法值: r,g,b 或者 white,black,blue.
black
kaptcha.obscurificator.impl
图片样式:
水纹com.google.code.kaptcha.impl.WaterRipple
鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
阴影com.google.code.kaptcha.impl.ShadowGimpycom.google.code.kaptcha.impl.WaterRipple
kaptcha.background.impl
背景实现类
com.google.code.kaptcha.impl.DefaultBackground
kaptcha.background.clear.from
背景颜色渐变,开始颜色
light grey
kaptcha.background.clear.to
背景颜色渐变, 结束颜色
white
kaptcha.word.impl
文字渲染器
com.google.code.kaptcha.text.impl.DefaultWordRenderer
kaptcha.session.key
session key
KAPTCHA_SESSION_KEY
kaptcha.session.date
session date
KAPTCHA_SESSION_DATE
SSM(Spring+SpringMVC+mybatis)使用Log4j记录日志
为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
Log4j的配置很简单,而且也是通用的,下面给出一个基本的配置,换到其他项目中也无需做多大的调整,如果想做调整或者想了解Log4j的各种配置,参看我转载的一篇博文,很详细:
http://blog.csdn.net/zhshulin/article/details/37937365
下面给出配置文件目录:
log4j.properties
为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
Log4j的配置很简单,而且也是通用的,下面给出一个基本的配置,换到其他项目中也无需做多大的调整,如果想做调整或者想了解Log4j的各种配置,参看我转载的一篇博文,很详细:
http://blog.csdn.net/zhshulin/article/details/37937365
下面给出配置文件目录:
log4j.properties#定义LOG输出级别
log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
Spring MVC 使用kaptcha生成验证码的更多相关文章
- Spring Boot快速集成kaptcha生成验证码
Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码,以图片的形式显示,从而无法进行复制粘贴:下面将详细介绍下Spring Boot快速集成kaptcha生成验证码的过程. 本 ...
- 使用kaptcha生成验证码
原文:http://www.cnblogs.com/xdp-gacl/p/4221848.html kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等 ...
- 转】使用kaptcha生成验证码
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4221848.html 感谢! kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜 ...
- Java Web学习总结(22)——使用kaptcha生成验证码
kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验. 一.搭建测试环境 ...
- Spring mvc框架下使用kaptcha生成验证码
1.下载jar包并导入. kaptcha-2.3.2.jar 2.spring 配置文件 applicationContext.xml. <bean id="captchaProduc ...
- spring mvc 使用kaptcha配置生成验证码实例
SpringMVC整合kaptcha(验证码功能) 一.依赖 <dependency> <groupId>com.github.penggle</groupId> ...
- Sping mvc 环境下使用kaptcha 生成验证码
一.kaptcha 的简介 kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kap ...
- 利用kaptcha生成验证码的详细教程
kaptcha是一个简单好用的验证码生成工具,有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.Ka ...
- 用kaptcha生成验证码
1.新建web项目,导入jar包:kaptcha-2.3.jar 2.配置web.xml代码如下: <?xml version="1.0" encoding="UT ...
随机推荐
- Unity3d中使用Lua
对于手机游戏,如果可以在线更新以实现bug修复.新功能添加等等,其好处自不必多说. 通过C#的反射机制,也可以实现某种程度上的脚本级更新,具体可以参考 http://docs.unity3d.com/ ...
- windows通过命令方式解压zip文件
1.需要下载unzip 地址:http://gnuwin32.sourceforge.net/packages/unzip.htm 下载exe版本 2.安装后将bin目录下的unzip.exe文件放在 ...
- 操作XDocument讲解
1.首先建立好XML .可以通选自定义EXCEL导出XML格式的数据:(如图) 2 读取XML 文件 具体的详细讲解 可以查看 改网址 :https://blog.csdn.net/dyllove98 ...
- NETCore 同步AD域组织和用户
BitAdminCore为没有自主开发框架的小团队,提供快速项目搭建及开发能力. 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxi ...
- windows 10 自适应布局
https://msdn.microsoft.com/library/windows/apps/dn894631.aspx Use visual state triggers to build UI ...
- Proxy account failing to run SSIS Error (Proxy (11) is not allowed for subsystem "SSIS" and user "AB\testuser ".
USE [msdb]EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSISProxyAgentV1', @login_name=N'WTC\E ...
- css细节复习笔记——内边距、边框和外边距
一个元素的内边距.边框和外边距属性会影响着整个文档如何布局,更重要的是,它们会严重影响给定元素的外观. 高度和宽度 这两个属性不能应用到行内非替换元素,其高度和宽度由链接的内容确定,而不是由创作人员确 ...
- python中的循环和编码,运算符, 格式化输出
1.while循环 现在让我们来看看python中的while循环 格式为 while 条件 循环体 (break) (continue) 中断循环的关键字有break和continue, brea ...
- Exp4 恶意代码分析 20164323段钊阳
网络对抗技术 20164323 Exp4 恶意代码分析 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. ...
- Python数据分析之文本处理词频统计
1.项目背景: 原本计划着爬某房产网站的数据做点分析, 结果数据太烂了,链家网的数据干净点, 但都是新开楼盘,没有时间维度,分析意义不大. 学习的步伐不能ting,自然语言处理还的go on 2.分析 ...