Tomcat 作為 Apache Foundation 管理的開源 Web 容器,一直是 Java 開發者實現 Web 應用的核心工具。隨著 Jakarta EE 11 的正式發布,Tomcat 11 作為其主要實現者,全面支援新版規範的變更與新增功能。本文將深入解析 Tomcat 11 如何整合 Jakarta EE 11 的技術特性,探討其在安全性、效能與可維護性上的改進,並說明開發者在實際應用中需注意的關鍵點。
Java 版本要求:Jakarta EE 11 最低要求 Java 17,此變更確保了與現代 Java 生態的兼容性,並移除了對過時的 Security Manager 的依賴,降低潛在安全風險。
規範清理與更新:Jakarta EE 11 移除了多項過時 API,例如 Servlet、JSP 中的 HTTPUtil 類別,並棄用 HTTP/2 伺服器推送功能,改以 103 早期提示機制優化資源載入效率。同時,明確化 HTTP 標頭處理、異步請求條件與路徑規範化行為,提升行為預測性。
新增功能與改進:Servlet 新增標準請求屬性與重定向控制功能,Expression Language 支援 Optional 處理與陣列、紀錄類型,WebSocket 引入 HTTP 會話讀取 API,安全機制則支援 SHA-256 加密與 RFC 9218 簡化 HTTP 優先級機制。
Tomcat 11 完整整合 Jakarta EE 11 規範,完成 TCK 測試套件整合,並改用 JUnit 5 提升測試效率。關鍵功能包括:
同時移除 32 位 Windows 支援、HTTP/2 伺服器推送與 Security Manager 相關程式碼,並強化安全性,例如預設縮短表單驗證會話逾時時間、新增 Limit Filter 防範 DDoS 攻擊。
日誌系統新增專用 Logger 追蹤憑證配置,並支援 JSON 格式的訪問日誌,提供秒/毫秒/微秒級時間粒度選項。
Tomcat 11 透過全面整合 Jakarta EE 11 規範,實現了 Java 17 的支援、安全機制強化與過時功能淘汰。開發者在遷移至 Tomcat 11 時,需注意 Java 版本升級、移除冗餘功能與配置新日誌與安全機制。此版本的技術整合不僅提升應用效能,也為未來 Jakarta EE 的演進奠定基礎。