java patchca生成验证码 Java中使用patchca生成超炫的验证码

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

java patchca生成验证码 Java中使用patchca生成超炫的验证码

zsg88   2021-03-24 我要评论
想了解Java中使用patchca生成超炫的验证码的相关内容吗,zsg88在本文为您仔细讲解java patchca生成验证码的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java,patchca验证码,java,验证码,下面大家一起来学习吧。

官网:http://code.google.com/p/patchca/

/**
   * 验证码
   *
   * @param width 图片宽度
   * @param height 图片高度
   * @param number 验证码数量
   */
  @RequestMapping(value = {"/captcha"})
  public void captcha(HttpServletRequest request,
            HttpServletResponse response, @RequestParam("w") int width, @RequestParam("h") int height, @RequestParam("n") int number) throws IOException {
    ConfigurableCaptchaService cs = new ConfigurableCaptchaService();
    cs.setColorFactory(new SingleColorFactory(new Color(25, 60, 170)));
    cs.setFilterFactory(new CurvesRippleFilterFactory(cs.getColorFactory()));
    RandomFontFactory ff = new RandomFontFactory();
    ff.setMinSize(30);
    ff.setMaxSize(30);
    RandomWordFactory rwf = new RandomWordFactory();
    rwf.setMinLength(number);
    rwf.setMaxLength(number);
    cs.setWordFactory(rwf);
    cs.setFontFactory(ff);
    cs.setHeight(height);
    cs.setWidth(width);
    response.setContentType("image/png");
    response.setHeader("Cache-Control", "no-cache, no-store");
    response.setHeader("Pragma", "no-cache");
    long time = System.currentTimeMillis();
    response.setDateHeader("Last-Modified", time);
    response.setDateHeader("Date", time);
    response.setDateHeader("Expires", time);
    ServletOutputStream stream = response.getOutputStream();
    String validate_code = EncoderHelper.getChallangeAndWriteImage(cs,
        "png", stream);
    Subject subject = SecurityUtils.getSubject();
    subject.getSession().setAttribute(formAuthenticationFilter.getCaptchaParam(), validate_code);
    stream.flush();
    stream.close();
  }

以上所述是小编给大家介绍的Java中使用patchca生成超炫的验证码 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们