全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

spring mvc 使用kaptcha配置生成验证码实例

使用Kaptcha 生成验证码十分简单并且参数可以进行自定义,以下简单记录下使用步骤。

1.在pom.xml中添加maven依赖:

<dependency>
  <groupId>com.google.code.kaptcha</groupId>
  <artifactId>kaptcha</artifactId>
  <version>2.3</version>
  <classifier>jdk15</classifier>
</dependency>

2.web.xml中配置kaptcha属性:

<bean id="verifyCodeProducer" 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.border.thickness">1</prop>

            <prop key="kaptcha.noise.color">blue</prop>

            <prop key="kaptcha.image.width">150</prop>
            <prop key="kaptcha.image.height">50</prop>

            <prop key="kaptcha.session.key">verifyCode</prop>

            <!-- <prop key="kaptcha.textproducer.char.string">0123456789abcdefghijklmnopqrst!@#$%^*</prop> -->
            <prop key="kaptcha.textproducer.char.length">4</prop>
            <prop key="kaptcha.textproducer.char.space">4</prop>


            <prop key="kaptcha.textproducer.font.size">30</prop>
            <prop key="kaptcha.textproducer.font.color">blue</prop>

          </props>
        </constructor-arg>
      </bean>
    </property>
  </bean>

其中bean节点的id值 verifyCodeProducer 为在类中引用@Resource生成实例时的名称;属性配置中 kaptcha.session.key 的值为在session中存取名称。

在servlet节点中配置

3.controller类中的相关方法:

@Controller
public class CommonController {

  @Autowired
  private Producer verifyCodeProducer;

  @RequestMapping(path = "/getVerifyCodeImage", method = RequestMethod.GET)
  public void getVerifyCodeImage(HttpServletRequest request, HttpServletResponse response) {
    HttpSession session = request.getSession();

    ResponseUtils.noCache(response);
    response.setContentType("image/jpeg");

    String capText = verifyCodeProducer.createText();
    session.setAttribute(Constants.SESSION_KEY_VERIFY_CODE, capText);

    BufferedImage bi = verifyCodeProducer.createImage(capText);
    ServletOutputStream out = null;
    try {
      out = response.getOutputStream();
      ImageIO.write(bi, "jpg", out);
      out.flush();
    } catch (Exception ex) {
      LOGGER.error("Failed to produce the verify code image: ", ex);
      throw new ServerInternalException("Cannot produce the verify code image.");
    } finally {
      IOUtils.closeQuietly(out);
    }
  }
}

Constants.SESSION_KEY_VERIFY_CODE为属性配置中 kaptcha.session.key 的值。

4.jsp:

<div class="form-group has-feedback">
  <span class="glyphicon glyphicon-barcode form-control-feedback"></span> 
  <input id="verifyCode" name="verifyCode" type="text" maxlength="4" class="form-control" placeholder="<spring:message code='login.label.code' />" />
  <div style="height: 1px"></div>
  <img src="${pageContext.request.contextPath}/getVerifyCodeImage" id="verifyCodeImage" style="margin-bottom: -3px" /> 
  <a href="#" rel="external nofollow" onclick="changeVerifyCode()"><spring:message code='login.code.tip' /></a>
</div>
function changeVerifyCode() {
  $('#verifyCodeImage').hide().attr('src', '${pageContext.request.contextPath}/getVerifyCodeImage?' + Math.floor(Math.random()*100) ).fadeIn(); 
  event.cancelBubble=true; 
}

5.kaptcha属性说明:

  1. kaptcha.border.color   边框颜色   默认为Color.BLACK 
  2. kaptcha.border.thickness  边框粗细度  默认为1 
  3. kaptcha.producer.impl   验证码生成器  默认为DefaultKaptcha 
  4. kaptcha.textproducer.impl   验证码文本生成器  默认为DefaultTextCreator 
  5. kaptcha.textproducer.char.string   验证码文本字符内容范围  默认为abcde2345678gfynmnpwx 
  6. kaptcha.textproducer.char.length   验证码文本字符长度  默认为5 
  7. kaptcha.textproducer.font.names    验证码文本字体样式  默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) 
  8. kaptcha.textproducer.font.size   验证码文本字符大小  默认为40 
  9. kaptcha.textproducer.font.color  验证码文本字符颜色  默认为Color.BLACK 
  10. kaptcha.textproducer.char.space  验证码文本字符间距  默认为2 
  11. kaptcha.noise.impl    验证码噪点生成对象  默认为DefaultNoise 
  12. kaptcha.noise.color   验证码噪点颜色   默认为Color.BLACK 
  13. kaptcha.obscurificator.impl   验证码样式引擎  默认为WaterRipple 
  14. kaptcha.word.impl   验证码文本字符渲染   默认为DefaultWordRenderer 
  15. kaptcha.background.impl   验证码背景生成器   默认为DefaultBackground 
  16. kaptcha.background.clear.from   验证码背景颜色渐进   默认为Color.LIGHT_GRAY 
  17. kaptcha.background.clear.to   验证码背景颜色渐进   默认为Color.WHITE 
  18. kaptcha.image.width   验证码图片宽度  默认为200 
  19. kaptcha.image.height  验证码图片高度  默认为50  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# kaptcha  # spring  # mvc  # springmvc  # 验证码生成  # springmvc配置kaptcha  # springMVC实现图形验证码(kaptcha)代码实例  # Google Kaptcha 框架实现登录验证码功能(SSM 和 SpringBoot)  # SpringBoot集成kaptcha验证码  # springboot整合kaptcha验证码的示例代码  # SpringMvc使用GoogleKaptcha生成验证码  # SpringBoot 集成Kaptcha实现验证码功能实例详解  # 登陆验证码kaptcha结合spring boot的用法详解  # Spring boot如何集成kaptcha并生成验证码  # 验证码  # 默认为  # 类中  # 噪点  # 自定义  # 值为  # 大家多多  # servlet  # Resource  # Controller  # public  # CommonController 


相关文章: 如何做网站制作流程,*游戏网站怎么搭建?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  建站之星安装后界面空白如何解决?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  如何快速搭建虚拟主机网站?新手必看指南  做企业网站制作流程,企业网站制作基本流程有哪些?  如何在阿里云虚拟主机上快速搭建个人网站?  网站制作公司,橙子建站是合法的吗?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  如何撰写建站申请书?关键要点有哪些?  建站主机选哪家性价比最高?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  小建面朝正北,A点实际方位是否存在偏差?  网站微信制作软件,如何制作微信链接?  如何快速辨别茅台真假?关键步骤解析  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何快速搭建高效WAP手机网站吸引移动用户?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  XML的“混合内容”是什么 怎么用DTD或XSD定义  建站之星安装失败:服务器环境不兼容?  ,南京靠谱的征婚网站?  如何有效防御Web建站篡改攻击?  ,怎么在广州志愿者网站注册?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  如何通过老薛主机一键快速建站?  网站制作壁纸教程视频,电脑壁纸网站?  nginx修改上传文件大小限制的方法  如何在景安云服务器上绑定域名并配置虚拟主机?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  如何快速启动建站代理加盟业务?  如何解决ASP生成WAP建站中文乱码问题?  建站之星CMS五站合一模板配置与SEO优化指南  实现虚拟支付需哪些建站技术支撑?  如何在阿里云服务器自主搭建网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何基于云服务器快速搭建个人网站?  如何将凡科建站内容保存为本地文件?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  ,交易猫的商品怎么发布到网站上去?  如何用免费手机建站系统零基础打造专业网站?  广州建站公司哪家好?十大优质服务商推荐  如何通过FTP服务器快速搭建网站?  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何快速搭建安全的FTP站点?  C#怎么使用委托和事件 C# delegate与event编程方法  制作表格网站有哪些,线上表格怎么弄? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。