首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 實作圖形驗證碼核心技巧(java.awt 繪圖)

     編輯:關於JSP

核心流程

  1. 建立 BufferedImage:指定寬、高、色彩模式(TYPE_INT_RGB)。
  2. 取得 Graphics 物件進行繪圖。
  3. 繪製背景、干擾線、隨機字元。
  4. 釋放 Graphics 資源(dispose())。
  5. 透過 ImageIO.write() 輸出圖片流(JPEG/PNG)。

獨立類別測試範例

public class HelloImage {
    public static void main(String[] args) {
        BufferedImage image = new BufferedImage(80, 25, BufferedImage.TYPE_INT_RGB);
        Graphics g = image.getGraphics();
        g.setColor(Color.WHITE);
        g.fillRect(0, 0, 80, 25);
        g.setColor(Color.BLACK);
        g.drawString("HelloImage", 6, 16);
        g.dispose();
        try {
            ImageIO.write(image, "jpeg", new File("C:\\helloImage.jpeg"));
        } catch (IOException e) { e.printStackTrace(); }
    }
}

編譯執行後,C 盤根目錄會產生含「HelloImage」文字的 JPEG 圖片。

整合至 JSP/Servlet 產生驗證碼

  • 將上述邏輯封裝於 Servlet doGet 中。
  • 產生隨機字串存入 session.setAttribute("rand", code)。
  • 設定回應 Header:Content-Type: image/jpeg、Pragma: No-cache、Cache-Control: no-cache。
  • 輸出流:ImageIO.write(image, "JPEG", response.getOutputStream())。
  • 前端頁面:<img src="CaptchaServlet" />,點擊圖片可重新整理。

進階強化方向

  • 字元來源擴大:英數字、中文、符號混合。
  • 干擾元素:隨機曲線、噪點、扭曲字型。
  • 字型隨機化:多種字體、大小、旋轉角度。
  • 使用 javax.imageio 而非舊版 com.sun.image.codec.jpeg。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved