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

Java 實現隨機驗證碼功能完整實例(Servlet 版)

     編輯:Java 相關知識

許多系統的註冊、登錄或發布信息模塊都添加隨機驗證碼,以防自動註冊或發布程序。驗證碼本質是隨機選擇字符以圖片形式展示,提交時需同時提交圖片字符,與服務端 Session 保存的比對,不一致則判定無效。為防自動識別,通常在圖片上加干擾線或扭曲字符。

核心實現:ValidateCodeServlet

使用 Servlet 實現,可通過 web.xml 配置寬高、字符數等參數。核心邏輯:

  • 創建 BufferedImage 畫布,填充白底、畫邊框
  • 生成 160 條隨機干擾線
  • 從字符集 A-Z, 0-9 隨機選取指定數量字符
  • 每個字符隨機顏色繪製到圖片
  • 將驗證碼存入 HttpSession(鍵:validateCode)
  • 設置響應頭禁止緩存,輸出 JPEG 圖片流

web.xml 配置範例

<servlet>
  <servlet-name>ValidateCodeServlet</servlet-name>
  <servlet-class>com.servlet.ValidateCodeServlet</servlet-class>
  <init-param><param-name>width</param-name><param-value>200</param-value></init-param>
  <init-param><param-name>height</param-name><param-value>80</param-value></init-param>
  <init-param><param-name>codeCount</param-name><param-value>5</param-value></init-param>
</servlet>
<servlet-mapping>
  <servlet-name>ValidateCodeServlet</servlet-name>
  <url-pattern>/validateCodeServlet</url-pattern>
</servlet-mapping>

前端調用

頁面引用:<img src="validateCodeServlet" width="100" />

用戶提交時,將輸入驗證碼與 Session 中字符串比對即可驗證。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved