| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
dw7n
10年前发布

java 生成验证码

/**   *    */  package com.becom.dkyd.webapp.util;  import java.awt.Color;  import java.awt.Font;  import java.awt.Graphics2D;  import java.awt.image.BufferedImage;  import java.io.IOException;  import java.util.Random;  import javax.imageio.ImageIO;  import javax.servlet.ServletException;  import javax.servlet.ServletOutputStream;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.HttpSession;  import com.becom.dkyd.common.Constant;  public class RandomCodeServlet extends HttpServlet  {      /**       * serialVersionUID       */      private static final long serialVersionUID = 5916019367240722024L;            private int width = 60;            private int height = 20;      @Override      protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException      {          BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);          Graphics2D g = img.createGraphics();                    Random random = new Random();                    g.setColor(Color.WHITE);          g.fillRect(0, 0, width, height);                    Font font = new Font("Times New Roman", Font.PLAIN, 18);          g.setFont(font);                    // 边框          g.setColor(Color.BLACK);          g.drawRect(0, 0, width - 1, height - 1);                    // 干扰线          g.setColor(Color.GRAY);          for (int i = 0; i < 60; i++)          {              int x = random.nextInt(width);              int y = random.nextInt(height);              int x1 = random.nextInt(12);              int y1 = random.nextInt(12);              g.drawLine(x, y, x + x1, y + y1);          }                    // 保存验证码          StringBuffer randomCode = new StringBuffer();          int red = 0;          int green = 0;          int blue = 0;                    // 生成验证码          for (int i = 0; i < 4; i++)          {          String strRand = String.valueOf(random.nextInt(10));                            red = random.nextInt(110);              green = random.nextInt(50);              blue = random.nextInt(50);                            g.setColor(new Color(red, green, blue));              g.drawString(strRand, 13 * i + 6, 16);                            randomCode.append(strRand);          }                    // 验证码放入session中          HttpSession session = req.getSession();          //需要验证的地方          //加入session                   // 禁止图象缓存          resp.setHeader("Pragma", "no-cache");          resp.setHeader("Cache-Control", "no-cache");          resp.setDateHeader("Expires", 0);                    resp.setContentType("image/jpeg");                    // 输出图象          ServletOutputStream sos = resp.getOutputStream();          ImageIO.write(img, "jpeg", sos);          sos.close();      }  }