使用开源项目patchca生成验证码

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
/** * Copyright(C) 2012. * * 模块名称: 登录模块 * 子模块名称: 验证码模块 * * 备注: * * 修改历史:*/package cn.edu.hbcit.smms.servlet.loginservlet;import java.io.IOException;import java.io.PrintWriter;import java.awt.Color;import java.io.IOException;import java.io.OutputStream;import java.util.Random;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.patchca.color.ColorFactory;import org.patchca.color.SingleColorFactory;import org.patchca.filter.predefined.CurvesRippleFilterFactory;import org.patchca.filter.predefined.DiffuseRippleFilterFactory;import org.patchca.filter.predefined.DoubleRippleFilterFactory;import org.patchca.filter.predefined.MarbleRippleFilterFactory;import org.patchca.filter.predefined.WobbleRippleFilterFactory;import org.patchca.font.FontFactory;import org.patchca.font.RandomFontFactory;import org.patchca.service.ConfigurableCaptchaService;import org.patchca.text.renderer.BestFitTextRenderer;import org.patchca.text.renderer.RandomYBestFitTextRenderer;import org.patchca.text.renderer.SimpleTextRenderer;import org.patchca.text.renderer.TextRenderer;import org.patchca.utils.encoder.EncoderHelper;import org.patchca.word.RandomWordFactory;/** * 验证码生成类 * * 本类的简要描述: * 使用开源验证码项目patchca生成 * jar包:patchca-0.5.0.jar * 项目网址:https://code.google.com/p/patchca/ * 项目中文介绍:http://baike.baidu.com/view/6925997.htm?fromTaglist * * @author liwei5946@gmail.com * @version 1.00  2012-6-7 新建类 */public class VerifyCodeServlet extends HttpServlet private static final long serialVersionUID = 3796351198097771007L;  private static ConfigurableCaptchaService ccs = nullprivate static ColorFactory cf = nullprivate static TextRenderer tr = nullprivate static RandomFontFactory ff = nullprivate static RandomWordFactory rwf = nullprivate static Random r = new Random(); //private static CurvesRippleFilterFactory crff = null;  //干扰线波纹 //private static MarbleRippleFilterFactory mrff = null;  //大理石波纹 //private static DoubleRippleFilterFactory drff = null;  //双波纹 private static WobbleRippleFilterFactory wrff = null;   //摆波纹 //private static DiffuseRippleFilterFactory dirff = null;  //漫波纹 /**  * Constructor of the object.  */ public VerifyCodeServlet() {  super(); }  /**  * Initialization of the servlet. <br>  *  * @throws ServletException if an error occurs  */ public void init() throws ServletException {  // Put your code here  super.init();  ccs = new ConfigurableCaptchaService();  cf = new SingleColorFactory(new Color(25, 60, 170));  ff = new RandomFontFactory();  rwf = new RandomWordFactory();  tr = new BestFitTextRenderer();  //crff = new CurvesRippleFilterFactory(ccs.getColorFactory());  //drff = new DoubleRippleFilterFactory();  wrff = new WobbleRippleFilterFactory();  //dirff = new DiffuseRippleFilterFactory();  //mrff = new MarbleRippleFilterFactory();  rwf.setCharacters("123456789");  ff.setRandomStyle(false);  ff.setMaxSize(16);  ff.setMinSize(12);  ccs.setTextRenderer(tr);  ccs.setFontFactory(ff);  ccs.setWordFactory(rwf);  ccs.setColorFactory(cf);  ccs.setWidth(50);  ccs.setHeight(20); } /**  * The doGet method of the servlet. <br>  *  * This method is called when a form has its tag value method equals to get.  *   * @param request the request send by the client to the server  * @param response the response send by the server to the client  * @throws ServletException if an error occurred  * @throws IOException if an error occurred  */ public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  response.setContentType("image/png");  response.setHeader("cache", "no-cache");  rwf.setMaxLength(4);  rwf.setMinLength(4);  HttpSession session = request.getSession(true);  OutputStream os = response.getOutputStream();  ccs.setFilterFactory(wrff);  /*switch (r.nextInt(5)) {  case 0:   ccs.setFilterFactory(drff);   break;  case 1:   ccs.setFilterFactory(mrff);   break;  case 2:   ccs.setFilterFactory(drff);   break;  case 3:   ccs.setFilterFactory(wrff);   break;  case 4:   ccs.setFilterFactory(dirff);   break;  }*/  String captcha = EncoderHelper.getChallangeAndWriteImage(ccs, "png", os);  session.setAttribute("captcha", captcha);  os.flush();  os.close(); } /**  * The doPost method of the servlet. <br>  *  * This method is called when a form has its tag value method equals to post.  *   * @param request the request send by the client to the server  * @param response the response send by the server to the client  * @throws ServletException if an error occurred  * @throws IOException if an error occurred  */ public void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  this.doGet(request, response); }  /**  * Destruction of the servlet. <br>  */ public void destroy() {  rwf = null;  cf = null;  ccs = null;  ff = null;  super.destroy(); // Just puts "destroy" string in log  // Put your code here }}


           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值