patchca整合Spring MVC生成超炫的验证码
@Controller
public
class
Login2Controller {
private
static
ConfigurableCaptchaService cs =
new
ConfigurableCaptchaService();
private
static
Random random =
new
Random();
static
{
// cs.setColorFactory(new SingleColorFactory(new Color(25, 60, 170)));
cs.setColorFactory(
new
ColorFactory() {
@Override
public
Color getColor(
int
x) {
int
[] c =
new
int
[
3
];
int
i = random.nextInt(c.length);
for
(
int
fi =
0
; fi < c.length; fi++) {
if
(fi == i) {
c[fi] = random.nextInt(
71
);
}
else
{
c[fi] = random.nextInt(
256
);
}
}
return
new
Color(c[
0
], c[
1
], c[
2
]);
}
});
RandomWordFactory wf =
new
RandomWordFactory();
wf.setCharacters(
"23456789abcdefghigkmnpqrstuvwxyzABCDEFGHIGKLMNPQRSTUVWXYZ"
);
wf.setMaxLength(
4
);
wf.setMinLength(
4
);
cs.setWordFactory(wf);
}
@RequestMapping
(
"/pcrimg"
)
public
void
crimg(HttpServletRequest request, HttpServletResponse response)
throws
IOException {
switch
(random.nextInt(
5
)) {
case
0
:
cs.setFilterFactory(
new
CurvesRippleFilterFactory(cs.getColorFactory()));
break
;
case
1
:
cs.setFilterFactory(
new
MarbleRippleFilterFactory());
break
;
case
2
:
cs.setFilterFactory(
new
DoubleRippleFilterFactory());
break
;
case
3
:
cs.setFilterFactory(
new
WobbleRippleFilterFactory());
break
;
case
4
:
cs.setFilterFactory(
new
DiffuseRippleFilterFactory());
break
;
}
HttpSession session = request.getSession(
false
);
if
(session ==
null
) {
session = request.getSession();
}
setResponseHeaders(response);
String token = EncoderHelper.getChallangeAndWriteImage(cs,
"png"
, response.getOutputStream());
session.setAttribute(
"captchaToken"
, token);
System.out.println(
"当前的SessionID="
+ session.getId() +
",验证码="
+ token);
}
protected
void
setResponseHeaders(HttpServletResponse response) {
response.setContentType(
"image/png"
);
response.setHeader(
"Cache-Control"
,
"no-cache, no-store"
);
response.setHeader(
"Pragma"
,
"no-cache"
);
long
time = System.currentTimeMillis();
response.setDateHeader(
"Last-Modified"
, time);
response.setDateHeader(
"Date"
, time);
response.setDateHeader(
"Expires"
, time);
}
}
patchca整合Spring MVC生成超炫的验证码的更多相关文章
- Hibernate validator使用和自定义validator及整合Spring MVC
http://blog.csdn.net/lwphk/article/details/43983669 Hibernate validator使用 导入validation-api-xxx.jar 以 ...
- spring mvc: 生成RSS源
spring mvc: 生成RSS源 准备: 从相同的maven存储库页面下载 Rome 库及其依赖项rome-utils,jdom和slf4j.和所需的依赖关系 <!-- rss源依赖 --& ...
- 【深度分析】:阿里,腾讯面试题 SpringBoot整合Spring MVC
Java学习总结 SpringBoot整合Spring MVC 1.SpringMVC概述 MVC(Model–view–controller)是软件工程中的一种软件架构模式,基于此模式把软件系统分为 ...
- Swagger+Spring mvc生成Restful接口文档
简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...
- spring mvc生成注册验证码
通过Spring MVC为系统添加验证码 1:布局登陆页面,用户名,密码,填写验证码的文本框,及验证码的图片及点击换图 <%@ taglib prefix="c" uri=& ...
- spring 整合 spring mvc
需要进行 Spring 整合 SpringMVC 吗 ? 还是否需要再加入 Spring 的 IOC 容器 ? 是否需要再 web.xml 文件中配置启动 Spring IOC 容器的 Context ...
- UEditor1.4.3.3整合Spring MVC和七牛
[前言] 项目中涉及将UEditor上传服务器整合进已有的基于Spring MVC的服务中,并且将上传到本地改为上传到七牛,看似简单的一个需求,实际做起来还是遇到了一些困难.在这里分享一下经验-- 七 ...
- MyBatis整合Spring MVC
前面几篇文章已经讲到了mybatis与spring 的集成.目前主流的Web MVC框架,除了Struts这个主力外,还有Spring MVC,主要是由于 Spring MVC 配置比较简单,使用起来 ...
- Spring MVC生成RSS源
下面的示例演示如何使用Spring Web MVC框架生成RSS源. 首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建 ...
随机推荐
- C#常用工具类——Excel操作类
/// 常用工具类——Excel操作类 /// <para> ------------------------------------------------</para> / ...
- 查看数据库中有哪些活动的事务,对应的会话id,执行的语句
select dbt.database_id, DB_NAME(dbt.database_id) '数据库名', dbt.transaction_id, at.name, at.transaction ...
- Xcode 5 安装coco2d-iphone
从http://www.cocos2d-iphone.org/download/下载并解压缩最新版本的cocos2d,默认情况下会保存在 /Users/XXX/Downloads/cocos2d-ip ...
- C++使用Json作为数据包装格式的通信
出处:http://adebugger.cn/2009/11/cpp-json-data-communication/ http://hi.baidu.com/tibelf/item/6be2accd ...
- linux ptrace II
第一篇 linux ptrace I 在之前的文章中我们用ptrace函数实现了查看系统调用参数的功能.在这篇文章中,我们会用ptrace函数实现设置断点,跟代码注入功能. 参考资料 Playing ...
- Linux下搭建Oracle11g RAC(3)----创建用户及配置相关文件
配置11gR2 RAC需要安装Oracle Grid Infrastructure软件.Oracle数据库软件,其中Grid软件等同于Oracle 10g的Clusterware集群件.Oracle建 ...
- System Operations on AWS - Lab 7 - CloudFormation
CloudFormation模板:创建一个VPC(包含Public子网,Private子网,分别在不同的AZ),创建NAT,Bastion Server在Public子网. 1. 修改并运行AWS C ...
- 查询语句,按照时间排序,取前N条
mysql: SELECT * from (SELECT H_TEMPERATURE,TH_TIME FROM wenshidu WHERE TH_TIME <= STR_TO_DATE(' ...
- Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群
Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...
- centos could not retrieve mirrorlist
centos could not retrieve mirrorlist >>>>>>>>>>>>>>>> ...