spring-mvc 运用 kaptcha实现验证码的生成
来源:互联网 发布:123d design for mac 编辑:程序博客网 时间:2024/05/14 19:37
1.下载kaptcha-2.3.2.jar
2.spring 配置文件 applicationContext.xml
<bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"> <property name="config"> <bean class="com.google.code.kaptcha.util.Config"> <constructor-arg> <props> <props> <prop key="kaptcha.image.width">65</prop> <prop key="kaptcha.image.height">30</prop> <prop key="kaptcha.textproducer.font.size">25</prop> <prop key="kaptcha.textproducer.font.color">red</prop> <prop key="kaptcha.textproducer.font.names">Arial</prop> <prop key="kaptcha.textproducer.char.string">123456789</prop> <prop key="kaptcha.textproducer.char.length">4</prop> <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.ShadowGimpy</prop> <prop key="kaptcha.noise.impl">com.google.code.kaptcha.impl.NoNoise</prop> </props> </props> </constructor-arg> </bean> </property> </bean>
也可以配置web.xml文件(两种配置方式只是位置不一样而已)
<pre name="code" class="html"><!--Kaptcha 验证码 --><servlet><servlet-name>kaptcha</servlet-name><servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class><init-param><param-name>kaptcha.border</param-name><param-value>no</param-value></init-param><init-param><param-name>kaptcha.border.color</param-name><param-value>105,179,90</param-value></init-param><init-param><param-name>kaptcha.textproducer.font.color</param-name><param-value>red</param-value></init-param><init-param><param-name>kaptcha.image.width</param-name><param-value>250</param-value></init-param><init-param><param-name>kaptcha.image.height</param-name><param-value>90</param-value></init-param><init-param><param-name>kaptcha.textproducer.font.size</param-name><param-value>70</param-value></init-param><init-param><param-name>kaptcha.session.key</param-name><param-value>code</param-value></init-param><init-param><param-name>kaptcha.textproducer.char.length</param-name><param-value>4</param-value></init-param><init-param><param-name>kaptcha.textproducer.font.names</param-name><param-value>宋体,楷体,微软雅黑</param-value></init-param></servlet>
配置项如下:
kaptcha.border 是否有边框 默认为true 我们可以自己设置yes,no kaptcha.border.color 边框颜色 默认为Color.BLACK kaptcha.border.thickness 边框粗细度 默认为1 kaptcha.producer.impl 验证码生成器 默认为DefaultKaptcha kaptcha.textproducer.impl 验证码文本生成器 默认为DefaultTextCreator kaptcha.textproducer.char.string 验证码文本字符内容范围 默认为abcde2345678gfynmnpwx kaptcha.textproducer.char.length 验证码文本字符长度 默认为5 kaptcha.textproducer.font.names 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) kaptcha.textproducer.font.size 验证码文本字符大小 默认为40 kaptcha.textproducer.font.color 验证码文本字符颜色 默认为Color.BLACK kaptcha.textproducer.char.space 验证码文本字符间距 默认为2 kaptcha.noise.impl 验证码噪点生成对象 默认为DefaultNoise kaptcha.noise.color 验证码噪点颜色 默认为Color.BLACK kaptcha.obscurificator.impl 验证码样式引擎 默认为WaterRipple kaptcha.word.impl 验证码文本字符渲染 默认为DefaultWordRenderer kaptcha.background.impl 验证码背景生成器 默认为DefaultBackground kaptcha.background.clear.from 验证码背景颜色渐进 默认为Color.LIGHT_GRAY kaptcha.background.clear.to 验证码背景颜色渐进 默认为Color.WHITE kaptcha.image.width 验证码图片宽度 默认为200 kaptcha.image.height 验证码图片高度 默认为50
3.jsp页面
<script type='text/javascript' src='${base}/js/jquery-1.10.2.min.js'></script> <script type="text/javascript"> $(function(){ $('#kaptchaImage').click(function () {//生成验证码 $(this).hide().attr('src', '${base}/captcha-image.htm?' + Math.floor(Math.random()*100) ).fadeIn(); event.cancelBubble=true; }); }); function changeCode() { $('#kaptchaImage').hide().attr('src', '${base}/captcha-image.htm?' + Math.floor(Math.random()*100) ).fadeIn(); event.cancelBubble=true; } </script>
<div class="chknumber"> <label>验证码: <input name="kaptcha" type="text" id="kaptcha" maxlength="4" class="chknumber_input" /> </label> <br /> <img src="${base}/captcha-image.htm" id="kaptchaImage" style="margin-bottom: -3px"/> <a href="#" onclick="changeCode()">看不清?换一张</a> </div>4.java代码控制器的实现
import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.google.code.kaptcha.Constants; import com.google.code.kaptcha.Producer; @Controller @RequestMapping("/") public class CaptchaImageCreateController { private Producer captchaProducer = null; @Autowired public void setCaptchaProducer(Producer captchaProducer) { this.captchaProducer = captchaProducer; } @RequestMapping("captcha-image") public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setDateHeader("Expires", 0); // Set standard HTTP/1.1 no-cache headers. response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); // Set IE extended HTTP/1.1 no-cache headers (use addHeader). response.addHeader("Cache-Control", "post-check=0, pre-check=0"); // Set standard HTTP/1.0 no-cache header. response.setHeader("Pragma", "no-cache"); // return a jpeg response.setContentType("image/jpeg"); // create the text for the image String capText = captchaProducer.createText(); // store the text in the session request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText); // create the image with the text BufferedImage bi = captchaProducer.createImage(capText); ServletOutputStream out = response.getOutputStream(); // write the data out ImageIO.write(bi, "jpg", out); try { out.flush(); } finally { out.close(); } return null; } }5.java代码中获取当前验证码
String kaptchaExpected = (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
0 0
- spring-mvc 运用 kaptcha实现验证码的生成
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- spring mvc 使用kaptcha生成验证码
- (spring mvc)使用google的kaptcha生成验证码
- spring mvc使用Google的kaptcha生成验证码
- Spring MVC+Kaptcha实现验证码功能
- spring mvc 使用kaptcha生成验证码 maven
- 验证码的生成------------------------spring mvc 通过拦截器使用kaptcha
- Spring MVC中配置Kaptcha验证码
- Spring mvc 中使用 kaptcha 验证码
- 简单聊聊HTTPS和SSL/TLS协议
- 第四周 阅读项目构造函数与析构函数执行的先后
- 程序员必读书单 1.0
- 用对话框实现数字小键盘
- SQL Server2000 使用Hibernate 翻页失败的问题
- spring-mvc 运用 kaptcha实现验证码的生成
- 会话跟踪
- 聚焦爬虫:定向抓取系统的实现方法
- iOS 处理内容乱码问题
- 一个简单的链表实现
- 源码详解openfire保存消息记录_修改服务端方式
- iOS开发学习第三课——循环结构
- redis内存容量的预估和优化
- 5-10