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

Java Web 實現圖形驗證碼完整示例

     編輯:Java 綜合教學

驗證碼作用

區分人工操作與自動化腳本,防止惡意註冊、暴力破解。

實現思路

  1. Servlet 生成隨機字符並繪製干擾線的圖片,輸出 JPEG 流。
  2. 將驗證碼字符串存入 Session。
  3. JSP 頁面通過 <img src="logcheck"> 顯示圖片,用戶輸入後提交。
  4. 另一 Servlet 從 Session 取出驗證碼與用戶輸入比對(忽略大小寫)。

核心代碼結構

1. 生成驗證碼 Servlet (logcheck)

  • 使用 BufferedImage + Graphics 繪製背景、干擾點、字符。
  • 設置響應頭防緩存:Pragma: No-cache、Cache-Control: no-cache、Expires: 0。
  • 輸出流寫入 JPEG 字節數組,Session 存入 checkcode。

2. 顯示頁面

<form action="yanzheng" method="post">
  <input type="text" name="name" size="5" maxlength="4">
  <a href="index.jsp"><img border="0" src="logcheck"></a><br><br>
  <input type="submit" value="提交">
</form>

3. 驗證 Servlet (yanzheng)

String input = request.getParameter("name");
String code = (String) session.getAttribute("checkcode");
if (code.equalsIgnoreCase(input)) {
    info = "驗證碼輸入正確";
} else {
    info = "驗證碼輸入錯誤";
}
request.setAttribute("info", info);
request.getRequestDispatcher("/login.jsp").forward(request, response);

4. 結果頁

<body><%=request.getAttribute("info") %></body>

項目結構清晰,適合初學者理解 Servlet/JSP 交互流程。

  1. 上一篇文章:
  2. 下一篇文章:
JS 載入時機陷阱:為什麼  script  放在 <head> 會找不到 DOM 元素? JS 載入時機陷阱:為什麼