谷歌图形验证码框架的简单使用(springMVC+spring+Hibernate)

前言

在这里插入图片描述我们很多项目的登录功能都是需要有验证码验证,这样的验证时其实为了防止有人使用机器循环试探性登录。废话少说我们直接来上实例。

准备工作

eclipse,
我这次拿我现有的项目加入做例子,这个项目是 springMVC+spring+Hibernate框架的。我们的验证码主要用到springMVC框架。

示例

把配置信息配置到springMVC的配置文件springmvc-servlet.xml
在这里插入图片描述源码:

<bean id="defaultKaptcha" class="com.google.code.kaptcha.impl.DefaultKaptcha">
     <property name="config">
         <bean class="com.google.code.kaptcha.util.Config">
             <constructor-arg>
                 <props>
                     <!-- 验证码宽度 -->
                     <prop key="kaptcha.image.width">110</prop>
                     <!-- 验证码高度 -->
                     <prop key="kaptcha.image.height">50</prop>
                     <!-- 生成验证码内容范围 -->
                     <prop key="kaptcha.textproducer.char.string">0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ</prop>
                     <!-- 验证码个数 -->
                     <prop key="kaptcha.textproducer.char.length">4</prop>
                     <!-- 是否有边框 -->
                     <prop key="kaptcha.border">no</prop>
                     <!-- 边框颜色 -->
                     <prop key="kaptcha.border.color">105,179,90</prop>
                     <!-- 边框厚度 -->
                     <prop key="kaptcha.border.thickness">1</prop>
                     <!-- 验证码字体颜色 -->
                     <prop key="kaptcha.textproducer.font.color">black</prop>
                     <!-- 验证码字体大小 -->
                     <prop key="kaptcha.textproducer.font.size">30</prop>
                     <!-- 验证码所属字体样式 -->
                     <prop key="kaptcha.textproducer.font.names">楷体</prop>
                     <!-- 干扰线颜色 -->
                     <prop key="kaptcha.noise.color">black</prop>
                     <!-- 验证码文本字符间距 -->
                     <prop key="kaptcha.textproducer.char.space">3</prop>
                     <!-- 图片样式 :阴影-->
                     <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.ShadowGimpy</prop>
                 </props>
             </constructor-arg>
         </bean>
     </property>
 </bean>



然后导入两个jar包这两个包是验证码要用到的。

在这里插入图片描述

filters-2.0.235-1.jar
在这里插入图片描述kaptcha-2.3.2.jar

两个jar包分别在这两个链接中了,点击进入跳转页面然后按截图来下载,然后导入即可。

然后在controller类中注入
在这里插入图片描述源码

@Autowired	
	private Producer kaptchaProducer = null;

编写方法生成图形验证码
在这里插入图片描述源码:

	@RequestMapping(value="/imgcode2", method=RequestMethod.GET)
	public void createImgCode2(HttpServletResponse resp, HttpServletRequest req) throws IOException{
		
		// 不需要浏览器进行图片缓存(浪费空间,因为只用一次)
		resp.setDateHeader("Expires",0);
		resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
		resp.addHeader("Cache-Control", "post-check=0, pre-check=0");
		resp.setHeader("Pragma", "no-cache");
		resp.setContentType("image/jpeg");
		
		// 产生随机数
		String capText = kaptchaProducer.createText();
		System.out.println("验证码:" + capText);
		
		// 保存图片
		req.getSession().setAttribute("img_stand2", capText);
		
		// 创建图片
		BufferedImage bi = kaptchaProducer.createImage(capText);
		OutputStream os = resp.getOutputStream();
		
		ImageIO.write(bi, "jpg", os);
		os.flush();
		os.close();
	}

在这里插入图片描述在这里插入图片描述如有不足,请多多指教

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值