大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java生成驗證碼圖片的代碼

Java生成驗證碼圖片的代碼

更新時間:2022-06-16 11:07:57 來源:動力節點 瀏覽1773次

動力節點小編來告訴大家最簡單的生成java的圖片驗證碼的方法,供大家參考。

現在所有行業都在考慮機器注冊來定制他們的系統,最有效的方法是輸入驗證。有很多方法可以驗證:

1.問題驗證,也就是圖片驗證,在圖片上生成問題,然后在輸入框中輸入答案。

2.圖片驗證,輸入圖片上顯示的文字信息。

3.短信驗證,比較復雜,用戶不喜歡。

4.還有百度最新的驗證方式。在圖像上生成文本,然后出現一個文本單擊框,選擇您在驗證圖像上看到的文本。

現在分享一段java生成驗證碼的代碼,這是一段基本的代碼??梢灾苯釉趯W習中使用,如果需要更復雜的驗證,可以添加自己的邏輯驗證。

@Controller
public class ImgVerifyCode extends HttpServlet { 
  /**
   *
   */
  private static final long serialVersionUID = 1L; 
  /**
   *  The width of the captcha image. 
   */
  private int width = 70;
  /**
   *  Captcha image height. 
   */
  private int height =30; 
  /**
   *  Number of verification code characters 
   */
  private int codeCount = 5; 
  /**
   * xx
   */
  private int xx = 0;
  /**
   *  The font height 
   */
  private int fontHeight; 
  /**
   * codeY
   */
  private int codeY; 
  /**
   * codeSequence
   */
   String[] codeSequence = { "1" , "2" , "3" , "4" , "5" ,"6","7","8","9","A","a","B","b","c","C"
       ,"D","d","E","e","F","f","G","g","z","X","Q","v"}; 
  /**
   *  Initializes the validation image properties 
   */
  public void init() throws ServletException {
    //  from web.xml Get the initial information in 
    //  The width of the 
    String strWidth =width+"";
    //  highly 
    String strHeight = height+"";
    //  The number of characters 
    String strCodeCount = codeCount+"";
    //  Converts configuration information to numeric values 
    try {
      if (strWidth != null && strWidth.length() != 0) {
        width = Integer.parseInt(strWidth);
      }
      if (strHeight != null && strHeight.length() != 0) {
        height = Integer.parseInt(strHeight);
      }
      if (strCodeCount != null && strCodeCount.length() != 0) {
        codeCount = Integer.parseInt(strCodeCount);
      }
    } catch (NumberFormatException e) {
      e.printStackTrace();
    } 
    xx = width / (codeCount + 2); // Generates the horizontal distance of the random number 
    fontHeight = height - 12;   // The height of a number to generate a random number 
    codeY = height - 8;      // Generate the vertical distance of the random number  
  } 
  protected String images(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException,IOException {
    init();
    //  Define the image buffer
    BufferedImage buffImg = new BufferedImage(width, height,
        BufferedImage.TYPE_INT_RGB);
    Graphics2D gd = buffImg.createGraphics(); 
    //  create 1 Random number generator class 
    Random random = new Random(); 
    //  Fill the image with white 
    gd.setColor(Color.WHITE);
    gd.fillRect(0, 0, width, height); 
    //  Create a font. The size of the font should depend on the height of the image. 
    Font font = new Font("Fixedsys", Font.PLAIN, fontHeight);
    //  Set the font. 
    gd.setFont(font); 
    //  Picture frame. 
    gd.setColor(Color.BLACK);
    gd.drawRect(0, 0, width - 1, height - 1); 
    //  Randomly generated 4 Interference line, so that the authentication code in the image is not easily detected by other programs. 
    gd.setColor(Color.BLACK);
    for (int i = 0; i < 4; i++) {
      int x = random.nextInt(width);
      int y = random.nextInt(height);
      int xl = random.nextInt(12);
      int yl = random.nextInt(12);
      gd.drawLine(x, y, x + xl, y + yl);
    } 
    // randomCode Used to save the randomly generated captcha for user authentication after login. 
    StringBuffer randomCode = new StringBuffer();
    int red = 0, green = 0, blue = 0; 
    //  Randomly generated codeCount Number verification code. 
    for (int i = 0; i < codeCount; i++) {
      //  Get the randomly generated captcha number. 
      String strRand = String.valueOf(codeSequence[random.nextInt(27)]);
      //  Generate a random color component to construct a color value, so that the color value of each number output will be different. 
      red = random.nextInt(125);
      green = random.nextInt(255);
      blue = random.nextInt(200); 
      //  Draws the captcha into the image with randomly generated colors. 
      gd.setColor(new Color(red, green, blue));
      gd.drawString(strRand, (i + 1) * xx, codeY); 
      //  Will produce the 4 I'm going to have a bunch of random Numbers 1 Up. 
      randomCode.append(strRand);
    }
    //  will 4 The numeric captcha is saved to Session In the. 
    HttpSession session = req.getSession();
    session.setAttribute("validateCode", randomCode.toString()); 
    //  Disable image caching. 
    resp.setHeader("Pragma", "no-cache");
    resp.setHeader("Cache-Control", "no-cache");
    resp.setDateHeader("Expires", 0); 
    resp.setContentType("image/jpeg"); 
    //  Output the image to Servlet In the output stream. 
    ServletOutputStream sos = resp.getOutputStream();
    ImageIO.write(buffImg, "jpeg", sos);
    sos.close();
    return null;
  }
   } 

此代碼是生成驗證圖像的基本方法。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 婷婷六月色 | 最新四虎4hu影库地址在线 | 欧美xxx午夜免费视频 | 国产高清狼人香蕉在线观看 | 女性毛片 | 欧美黑人激情性久久 | 久久精品视频免费播放 | 奇米444| 97在线视频免费播放 | 成年人看的黄色 | 豆国产93在线 | 亚洲 | 日韩美女va在线毛片免费知 | 天天干影视| 国产精品一在线观看 | 亚洲精品综合久久 | 国产成人精品综合 | 中国美女日b | 欧美久久久久久久一区二区三区 | 精品一区二区三区在线视频观看 | 狠狠色噜噜狠狠狠8888米奇 | 一级片免费 | 国产麻豆精品高清在线播放 | 亚洲精品一区二区三区婷婷 | 久久久久久久久影院 | 国产在线欧美精品 | 亚洲第一永久在线观看 | 亚洲欧美日本在线观看 | 久久精品国产99国产精品亚洲 | 美国特级成人毛片 | 色偷偷7777www | 99在线免费播放 | 网络毛片 | 香蕉视频97 | 日本欧美高清全视频 | 国产情侣久久精品 | 性欧美极品xxxx欧美一区二区 | 91精品国产高清久久久久 | 亚洲免费三区 | 成人二区 | 性视频久久 | 老妇色 |