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应用程序: 创建 ...
随机推荐
- 【JAVA - SSM】之MyBatis输出映射
MyBatis中的输出映射有两种:resultType和resultMap. 1.resultType 使用resultType进行结果映射时,只有当查询结果中有至少一列的名称和resultType指 ...
- Jsp学习(1)
Servlet的用作:用java语言开发动态资源的技术: Jsp的作用:用java语言(+html)开发动态的资源,其实jsp就是servlet演化而来的. Jsp的执行过程: 我们先来做一个实验,首 ...
- Android之PreferenceActivity 详解
看到很多书中都没有对PreferenceActivity做介绍,而我正好又在项目中用到,所以就把自己的使用的在这总结一下,也方便日后查找. PerferenceActivity是什么,看下面的截图: ...
- Notification与多线程
来源:南峰子(@南峰子_老驴 ) 链接:http://t.cn/R5swQcR 前几天与同事讨论到Notification在多线程下的转发问题,所以就此整理一下. 先来看看官方的文档,是这样写的: I ...
- android自定义控件之滚动广告条
在一些电子商务网站上经常能够看到一些滚动的广告条,许多软件在首次使用时也有类似的广告条,如图: 其实在github上有实现这种效果的控件,不过这东西做起来也是很简单,我们今天就来看看该怎么做. 先来看 ...
- Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist
使用 composer 安装 laravel 时报错, 如下: [ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmR ...
- linux vncserver配置
需要使用Linux的远程桌面服务,xmanager之前用过,感觉一般,这次尝试下vnc 我的操作系统是centos7 一服务端 安装VNCServer #yum -y install vnc *vnc ...
- Linux系统ifconfig命令找不到,centos ifconfig Command not found
centos ifconfig Command not found,Linux系统ifconfig命令找不到 >>>>>>>>>>>& ...
- php strtotime函数服务器和本地不相同
遇到过一种情况strtotime 在本地和服务器不相同 服务器返回的是-1 strtotime($sa_sagyo_ymd."23:59:59") 如果这样用不了,就只能换一种写法 ...
- Spring Framework jar官方直接下载路径
SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,下给出Spring Framework jar官方直接下载路径: h ...