spring mvc之验证码kaptcha

该验证码使用的谷歌的kaptcha,在他的基础上去掉了模糊的属性,和官方的jar包有区别。不废话,贴代码。

<bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
                <property name="config">
                        <bean class="com.google.code.kaptcha.util.Config">
                                <!--通过构造函数注入属性值 -->
                                <constructor-arg type="java.util.Properties">
                                        <props>
                                            <!-- 验证码宽度 -->
                                            <prop key="kaptcha.image.width">90</prop>
                                            <!-- 验证码高度 -->
                                            <prop key="kaptcha.image.height">36</prop>
                                            <!-- 生成验证码内容范围 -->
                                            <prop key="kaptcha.textproducer.char.string">0123456789</prop>
                                            <!-- 验证码个数 -->
                                            <prop key="kaptcha.textproducer.char.length">4</prop>
                                            <!-- 是否有边框 -->
                                            <prop key="kaptcha.border">yes</prop>
                                            <!-- 边框颜色 -->
                                            <prop key="kaptcha.border.color">black</prop>
                                            <!-- 边框厚度 -->
                                            <prop key="kaptcha.border.thickness">1</prop>
                                            <!-- 验证码字体颜色 -->
                                            <prop key="kaptcha.textproducer.font.color">black</prop>
                                            <!-- 验证码字体大小 -->
                                            <prop key="kaptcha.textproducer.font.size">33</prop>
                                            <!-- 验证码所属字体样式 -->
                                            <prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop>  

                                            <prop key="kaptcha.noise.impl">com.google.code.kaptcha.impl.NoNoise</prop>
                                            <!-- 干扰线颜色 -->
                                            <!--<prop key="kaptcha.noise.color">blue</prop>
                                            --><!-- 验证码文本字符间距 -->
                                            <prop key="kaptcha.textproducer.char.space">3</prop>                                            <pre name="code" class="html">                                            <!-- 该属性官方jar包没有,否则会报错,下面会帖jar包连接的 -->
                                            <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.NoWater</prop>
                                           </props>
                                </constructor-arg>
                        </bean>
                </property>
         </bean>  

页面上添加

 <img class="kaptcha" id="kaptcha" src="kaptcha/kaptcha.do"/>

另外别忘了加上jquery。因为下面用到了点击换验证码

$(function (){
                     $('#kaptcha').click(
                        function (){
                            $(this).attr('src', 'kaptcha/kaptcha.do?' + Math.floor(Math.random() * 100));
                         }
                     );
                 });      

我的spring拦截的后缀为.do的文件,大家根据自己的项目去修改。

@Controller("kaptchaController")
@RequestMapping("/kaptcha")
public class KaptchaController {

	@Autowired
    private Producer captchaProducer;

	@RequestMapping("/kaptcha.do")
	public void initCaptcha(HttpServletRequest request,
            HttpServletResponse response) throws Exception{
          response.setDateHeader("Expires", 0);
          response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
          response.addHeader("Cache-Control", "post-check=0, pre-check=0");
          response.setHeader("Pragma", "no-cache");
          response.setContentType("image/jpeg");
          String capText = captchaProducer.createText();
          request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
          BufferedImage bi = captchaProducer.createImage(capText);    

          ServletOutputStream out = response.getOutputStream();
          ImageIO.write(bi, "jpg", out);    

          try{
              out.flush();
          }finally{
              out.close();
          }
    }
}

大家可以去下载我的jar包

http://download.csdn.net/detail/u014274324/7997245

下面是效果

时间: 2024-10-10 10:27:19

spring mvc之验证码kaptcha的相关文章

spring mvc 页面验证码样例

验证码类: import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public

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.D

Spring MVC 中使用 Google kaptcha 验证码

验证码是抵抗批量操作和恶意登录最有效的方式之一. 验证码从产生到现在已经衍生出了很多分支.方式.google kaptcha 是一个非常实用的验证码生成类库. 通过灵活的配置生成各种样式的验证码,并将生成的验证码字符串放到 HttpSession 中,方便获取进行比较. 本文描述在 spring mvc 下快速的将 google kaptcha 集成到项目中(单独使用的话在 web.xml 中配置 KaptchaServlet). 1.maven 依赖 官方提供的 pom 无法正常使用,使用阿里

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

基于spring mvc的图片验证码实现 标签: springmvcspring mvc验证码验证码验证 2016-01-28 10:49 8015人阅读 评论(4) 收藏 举报  分类: 表单处理 版权声明:本文为博主原创文章,未经博主允许不得转载. 本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) public void getAuthCode(HttpServ

patchca整合Spring MVC生成超炫的验证码

官方的色调单一,随机色也不随机,黑不拉几的,很难看. 为此做了扩展实现,并整合了spring mvc,生成的验证码漂亮多了. 官网: http://code.google.com/p/patchca/ 官方效果: 下面是我整合到spring并修扩展后的效果: package com.lavasoft.ntv.web; import org.patchca.color.ColorFactory; import org.patchca.filter.predefined.*; import org.

web工程使用spring mvc+shiro进行权限控制

第1步:引入shiro相关jar包 ehcache-core-2.5.0.jar shiro-ehcache-1.2.3.jar shiro-core-1.2.3.jar shiro-web-1.2.3.jar shiro-spring-1.2.3.jar 第二步:web.xml配置 <!-- shiro的filter --> <!-- shiro过虑器,DelegatingFilterProxy通过代理模式将spring容器中的bean和filter关联起来 --> <fi

spring mvc 4.3.2 + mybatis 3.4.1 + mysql 5.7.14 +shiro 幼儿园收费系统 之 登录

如标题,用spring mvc 4.3.2+mybatis 3.4.1 + mysql 5.7.14 +shiro 开发了一个用于幼儿园的管理系统. 功能模块 包括 账号,角色,权限管理. 幼儿档案管理, 幼儿收费管理等. 权限方面采用了shiro的权限控制,感觉还是蛮强大的.我的理念是 简单,够用就好. 前端框架是基于H-ui.admin的模板来开发的.这个模板用起来还是蛮方便的,适合对前端不是很熟的人采用,可以达到专业的效果.赞一个. 先截个图 实现要点,前端用js把密码用md5加密后传给后

Spring MVC + Mybatis + Shiro

1.Spring配置:web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/

Spring mvc整合mybatis基于mysql数据库实现用户增删改查及其分页显示的完整入门实例【转】

Spring mvc整合mybatis例子, 基于mysql数据库实现对用户的增.删.改.查,及分页显示的完整例子. 查询显示用户 添加用户 更新用户 官方验证: 项目截图 必须修改applicationContext.xml中mysql的配置为本地的,否则启动失败. 另外jar包多一个ehcache.jar无关紧要,删除即可. 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库