大战熟女丰满人妻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;
  }
   } 

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美伦理一区二区三区 | 精品日韩一区二区 | 奇米影视亚洲春色77777 | 欧美真人视频一级毛片 | 亚洲欧美日韩激情在线观看 | 在线观看深夜观看网站免费 | 国产男女爱视频在线观看 | 91久久国产精品视频 | 私人影院免费 | 亚州中文字幕 | 欧美国产精品一区二区免费 | 久久亚洲一区二区 | 亚洲精品亚洲人成毛片不卡 | 亚洲成人综合网站 | 亚洲美女啪啪 | 午夜精品福利影院 | 久久久久久日本一区99 | 国产天堂| 天天色综合天天 | 四虎官方影库 | 久久精品久久精品国产大片 | 国产精品久久久亚洲第一牛牛 | 伊人影院中文字幕 | 99视频精品全部免费免费观 | 久久精品中文字幕一区 | 国产色啪午夜免费视频 | 欧美一区二区三区精品国产 | 四虎永久在线观看视频精品 | 国产热热| 深插视频| 成人免费黄网站 | 欧美精品成人a多人在线观看 | 欧美成人看片 | 一区二区亚洲视频 | 欧美午夜精品一区二区三区 | 日本国产成人精品视频 | 男人的天堂一区二区视频在线观看 | 中文字幕亚洲精品日韩精品 | 亚洲一区国产 | 国产精品高清一区二区 | 日本不卡高清免费 |