spring mvc 使用kaptcha生成验证码
来源:互联网 发布:图像 meanshift算法 编辑:程序博客网 时间:2024/05/16 08:51
1.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><prop key="kaptcha.border">yes</prop><prop key="kaptcha.border.color">105,179,90</prop><prop key="kaptcha.textproducer.font.color">blue</prop><prop key="kaptcha.image.width">125</prop><prop key="kaptcha.image.height">45</prop><prop key="kaptcha.textproducer.font.size">45</prop><prop key="kaptcha.session.key">code</prop><prop key="kaptcha.textproducer.char.length">4</prop><prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop></props></constructor-arg></bean></property></bean>
2. Controller的实现
package com.vopzoon.app.base.captcha;import java.awt.image.BufferedImage;import javax.imageio.ImageIO;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;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;/** * 防止Captcha机器人登陆 * @author liuwang * */@Controller@RequestMapping("/kaptcha/*")public class CaptchaController {@Autowiredprivate Producer captchaProducer = null;@RequestMappingpublic ModelAndView getKaptchaImage(HttpServletRequest request, HttpServletResponse response) throws Exception {HttpSession session = request.getSession();String code = (String)session.getAttribute(Constants.KAPTCHA_SESSION_KEY);System.out.println("******************验证码是: " + code + "******************");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 jpegresponse.setContentType("image/jpeg");// create the text for the imageString capText = captchaProducer.createText();// store the text in the sessionsession.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);// create the image with the textBufferedImage bi = captchaProducer.createImage(capText);ServletOutputStream out = response.getOutputStream();// write the data outImageIO.write(bi, "jpg", out);try {out.flush();} finally {out.close();}return null;}}
3. JSP代码
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/functions.js"></script><title>测试页面</title><script type="text/javascript">$(function(){ $('#kaptchaImage').click(function () {//生成验证码 $(this).hide().attr('src', './kaptcha/getKaptchaImage.do?' + Math.floor(Math.random()*100) ).fadeIn(); event.cancelBubble=true; });}); window.onbeforeunload = function(){//关闭窗口时自动退出if(event.clientX>360&&event.clientY<0||event.altKey){ alert(parent.document.location);}};function changeCode() {$('#kaptchaImage').hide().attr('src', './kaptcha/getKaptchaImage.do?' + Math.floor(Math.random()*100) ).fadeIn();event.cancelBubble=true;}</script></head><body><div class="chknumber"> <label>验证码: <input name="kaptcha" type="text" id="kaptcha" maxlength="4" class="chknumber_input" /> </label> <br /> <img src="./kaptcha/getKaptchaImage.do" id="kaptchaImage" style="margin-bottom: -3px"/> <a href="#" onclick="changeCode()">看不清?换一张</a></div></body></html>
4.controller中取得校验码
String kaptchaExpected = (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
5.kaptcha可配置项
kaptcha.border 是否有边框 默认为true 我们可以自己设置yes,nokaptcha.border.color 边框颜色 默认为Color.BLACKkaptcha.border.thickness 边框粗细度 默认为1kaptcha.producer.impl 验证码生成器 默认为DefaultKaptchakaptcha.textproducer.impl 验证码文本生成器 默认为DefaultTextCreatorkaptcha.textproducer.char.string 验证码文本字符内容范围 默认为abcde2345678gfynmnpwxkaptcha.textproducer.char.length 验证码文本字符长度 默认为5kaptcha.textproducer.font.names 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)kaptcha.textproducer.font.size 验证码文本字符大小 默认为40kaptcha.textproducer.font.color 验证码文本字符颜色 默认为Color.BLACKkaptcha.textproducer.char.space 验证码文本字符间距 默认为2kaptcha.noise.impl 验证码噪点生成对象 默认为DefaultNoisekaptcha.noise.color 验证码噪点颜色 默认为Color.BLACKkaptcha.obscurificator.impl 验证码样式引擎 默认为WaterRipplekaptcha.word.impl 验证码文本字符渲染 默认为DefaultWordRendererkaptcha.background.impl 验证码背景生成器 默认为DefaultBackgroundkaptcha.background.clear.from 验证码背景颜色渐进 默认为Color.LIGHT_GRAYkaptcha.background.clear.to 验证码背景颜色渐进 默认为Color.WHITEkaptcha.image.width 验证码图片宽度 默认为200kaptcha.image.height 验证码图片高度 默认为50
转载地址:http://blog.csdn.net/rambo_china/article/details/7720181
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生成验证码 maven
- (spring mvc)使用google的kaptcha生成验证码
- spring mvc使用Google的kaptcha生成验证码
- Spring mvc 中使用 kaptcha 验证码
- Spring mvc 中使用 kaptcha 验证码
- Spring mvc 中使用 kaptcha 验证码
- Spring mvc 中使用 kaptcha 验证码
- spring-mvc 运用 kaptcha实现验证码的生成
- android 代码设置、打开wifi热点及热点的连接
- 用ls和du显示的文件大小为何有差别
- <HTML5> 新增的表单元素
- LeetCode09:Palindrome Number
- 工具链接
- spring mvc 使用kaptcha生成验证码
- Odd Even Linked List
- Python caffe cuda7.5 windows pycharm
- AIDL 安卓进程间通信/跨应用通信
- 漫步凸分析八——回收锥与无界
- 前端收藏
- 写在博客开通之初
- 关于内存泄露的总结
- ftp创建文件权限问题