开源项目patchca生成验证码

上传人:第*** 文档编号:31143280 上传时间:2018-02-05 格式:DOC 页数:6 大小:46KB
返回 下载 相关 举报
开源项目patchca生成验证码_第1页
第1页 / 共6页
开源项目patchca生成验证码_第2页
第2页 / 共6页
开源项目patchca生成验证码_第3页
第3页 / 共6页
开源项目patchca生成验证码_第4页
第4页 / 共6页
开源项目patchca生成验证码_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《开源项目patchca生成验证码》由会员分享,可在线阅读,更多相关《开源项目patchca生成验证码(6页珍藏版)》请在金锄头文库上搜索。

1、用之前要导入 patchca jar 包,可能会与 tomcat 的 lib 目录下的 jar 包发生冲突,一切准备好之后在使用下面的代码(导入 jar 包后,先发布其他的项目试试,没问题的发继续)package com.ninemax.cul.servlet;import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.awt.image.BufferedImageOp;import java.io.IOException;import java.io.Output

2、Stream;import java.util.ArrayList;import java.util.List;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.htt

3、p.HttpSession;import org.patchca.background.BackgroundFactory;import org.patchca.color.ColorFactory;import org.patchca.color.RandomColorFactory;import org.patchca.filter.ConfigurableFilterFactory;import org.patchca.filter.library.AbstractImageOp;import org.patchca.filter.library.WobbleImageOp;import

4、 org.patchca.font.RandomFontFactory;import org.patchca.service.Captcha;import org.patchca.service.ConfigurableCaptchaService;import org.patchca.text.renderer.BestFitTextRenderer;import org.patchca.text.renderer.TextRenderer;import org.patchca.word.RandomWordFactory;/* * 验证码生成类 * * 使用开源验证码项目 patchca

5、生成 * 依赖 jar 包:patchca-0.5.0.jar * 项目网址: https:/ * * author zyh * version 1.00 2012-7-12 New */public class ValidationCodeServlet extends HttpServlet private static final long serialVersionUID = 5126616339795936447L;private ConfigurableCaptchaService configurableCaptchaService = null;private ColorFac

6、tory colorFactory = null;private RandomFontFactory fontFactory = null;private RandomWordFactory wordFactory = null;private TextRenderer textRenderer = null;public ValidationCodeServlet() super();/* Servlet 销毁方法, 负责销毁所使用资源. */public void destroy() wordFactory = null;colorFactory = null;fontFactory =

7、null;textRenderer = null;configurableCaptchaService = null;super.destroy(); / Just puts destroy string in logpublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request, response);public void doPost(HttpServletRequest request, HttpSe

8、rvletResponse response)throws ServletException, IOException response.setContentType(image/png);response.setHeader(cache, no-cache);HttpSession session = request.getSession(true);OutputStream outputStream = response.getOutputStream();/ 得到验证码对象, 有验证码图片和验证码字符串Captcha captcha = configurableCaptchaServic

9、e.getCaptcha();/ 取得验证码字符串放入 SessionString validationCode = captcha.getChallenge();session.setAttribute(validationCode, validationCode);/ 取得验证码图片并输出BufferedImage bufferedImage = captcha.getImage();ImageIO.write(bufferedImage, png, outputStream);outputStream.flush();outputStream.close();/* Servlet 初始化

10、方法*/public void init() throws ServletException configurableCaptchaService = new ConfigurableCaptchaService();/ 颜色创建工厂,使用一定范围内的随机色colorFactory = new RandomColorFactory();configurableCaptchaService.setColorFactory(colorFactory);/ 随机字体生成器fontFactory = new RandomFontFactory();fontFactory.setMaxSize(32);

11、fontFactory.setMinSize(28);configurableCaptchaService.setFontFactory(fontFactory);/ 随机字符生成器, 去除掉容易混淆的字母和数字 ,如 o 和 0 等wordFactory = new RandomWordFactory();wordFactory.setCharacters(abcdefghkmnpqstwxyz23456789);wordFactory.setMaxLength(5);wordFactory.setMinLength(4);configurableCaptchaService.setWord

12、Factory(wordFactory);/ 自定义验证码图片背景MyCustomBackgroundFactory backgroundFactory = new MyCustomBackgroundFactory();configurableCaptchaService.setBackgroundFactory(backgroundFactory);/ 图片滤镜设置ConfigurableFilterFactory filterFactory = new ConfigurableFilterFactory();List filters = new ArrayList();WobbleIma

13、geOp wobbleImageOp = new WobbleImageOp();wobbleImageOp.setEdgeMode(AbstractImageOp.EDGE_MIRROR);wobbleImageOp.setxAmplitude(2.0);wobbleImageOp.setyAmplitude(1.0);filters.add(wobbleImageOp);filterFactory.setFilters(filters);configurableCaptchaService.setFilterFactory(filterFactory);/ 文字渲染器设置textRende

14、rer = new BestFitTextRenderer();textRenderer.setBottomMargin(3);textRenderer.setTopMargin(3);configurableCaptchaService.setTextRenderer(textRenderer);/ 验证码图片的大小configurableCaptchaService.setWidth(82);configurableCaptchaService.setHeight(32);/* 自定义验证码图片背景, 主要画一些噪点和干扰线*/private class MyCustomBackgroun

15、dFactory implements BackgroundFactory private Random random = new Random();public void fillBackground(BufferedImage image) Graphics graphics = image.getGraphics();/ 验证码图片的宽高int imgWidth = image.getWidth();int imgHeight = image.getHeight();/ 填充为白色背景graphics.setColor(Color.WHITE);graphics.fillRect(0,

16、0, imgWidth, imgHeight);/ 画 100 个噪点 (颜色及位置随机)for(int i = 0; i validationCodecom.ninemax.cul.servlet.ValidationCodeServletvalidationCode/validationCodeServlet.pngJSP 引用(部分)/validationCodeServlet.png onclick=refreshCode(this) /换一张JS 重新载入图片方法( 参考):/* 刷新验证码* param imgObj 验证码 Img 元素*/function refreshCode(imgObj) if (!imgObj) imgObj = document.getElementById(validationCode);var index = imgOb

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号