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

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

Java生成驗證碼圖片的代碼

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

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

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

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

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

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

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

現在分享一段java生成驗證碼的代碼,這是一段基本的代碼。可以直接在學習中使用,如果需要更復雜的驗證,可以添加自己的邏輯驗證。

@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;
  }
   } 

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产成人91 | 亚洲精品欧美精品日韩精品 | 久在草影院| 一区二区三区四区日韩 | 一级毛片真人不卡免费播 | 久操免费在线 | 国产黄色影院 | 日本中文字幕不卡 | 99在线播放 | 精品国产成人系列 | 国产精品免费看久久久香蕉 | 青青成人 | 久久国内免费视频 | 九九精品久久久久久久久 | 一级毛片直接看 | 欧美日韩精选 | 国产农村妇女毛片精品久久久 | 九九在线精品视频 | 26uuu另类亚洲欧美日本一 | 99国产高清久久久久久网站 | 夜夜夜夜夜操 | 激情五月开心婷婷 | 国产免费不卡 | 四虎影院最新网站 | 婷婷在线网站 | 日韩成a人片在线观看日本 日韩成人 | 操熟美女又肥又嫩的骚屁股 | 第四色激情网 | 亚欧毛片基地国产毛片基地 | 大胆国模一区二区三区伊人 | 天天草b | 日韩欧美亚洲国产高清在线 | 国产精品一区在线观看 | 亚洲国产精品人久久 | 久久99精品麻豆国产 | 亚洲欧美日韩国产vr在线观 | 337p亚洲精品色噜噜狠狠 | 日韩中文字幕在线观看视频 | 成人亚洲性情网站www在线观看 | 亚洲爱v | 国产精品线在线精品 |