谷歌图形验证码框架的简单使用(springMVC+spring+Hibernate) - Go语言中文社区

谷歌图形验证码框架的简单使用(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();
	}

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

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/CQWNB/article/details/103292906
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 19:43:03
  • 阅读 ( 1227 )
  • 分类:Go Web框架

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢