Apache Tomcat 6.0 作為經典的 Servlet 容器,雖然已非最新版本,但在許多維護專案中仍廣泛使用。正確的配置能避免亂碼、權限不足、JDK 版本衝突等常見問題。本文將從編碼設定、管理用戶配置、JDK 環境變量三個維度,系統梳理 Tomcat 6.0 的關鍵配置要點。
Tomcat 預設使用 ISO-8859-1 編碼處理 URL 參數,導致中文參數傳遞時出現亂碼。需修改 server.xml 中的 Connector 元素,強制指定 UTF-8 編碼。
$CATALINA_HOME/conf/server.xmlURIEncoding="UTF-8" 屬性<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="150"
URIEncoding="UTF-8" />
補充說明: 若專案還使用 AJP 連接器(如整合 Apache httpd),同樣需在對應的 Connector 中加入 URIEncoding="UTF-8"。
在開發階段,啟用熱部署可讓修改後的類文件自動重載,無需重啟伺服器。修改 context.xml(或 server.xml 中的 Context 元素)。
<Context reloadable="true"></Context>
注意: 生產環境務必設為 false,避免類重載帶來的效能開銷與記憶體洩漏風險。
Tomcat 管理應用需要具備特定角色的用戶。編輯 $CATALINA_HOME/conf/tomcat-users.xml,新增角色與用戶。
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="your_strong_password" roles="manager-gui,admin-gui"/>
manager-gui:啟用 Web 管理介面(/manager/html)admin-gui:啟用虛擬主機管理介面(/host-manager/html)當系統安裝多個 JDK 版本時,Tomcat 啟動腳本可能讀取錯誤的 JAVA_HOME。需在 setclasspath.bat(Windows)或 setclasspath.sh(Linux/Unix)最開頭強制指定 JDK 1.5+ 路徑。
rem Windows 範例
set JAVA_HOME="C:\Program Files\Java\jdk1.5.0_22"
# Linux/Unix 範例
export JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun"
驗證方式: 啟動 Tomcat 後,查看日誌 catalina.out 或控制台輸出的 Java Home 路徑是否符合預期。
| 現象 | 可能原因 | 解決方向 |
|---|---|---|
| 中文參數亂碼 | Connector 缺少 URIEncoding | 補全 UTF-8 編碼屬性 |
| 管理頁面 403 Forbidden | 用戶缺少 manager-gui 角色 | 檢查 tomcat-users.xml 角色分配 |
| 啟動報 UnsupportedClassVersionError | JDK 版本低於編譯目標版本 | 修正 setclasspath 指向 JDK 1.5+ |
| 修改 JSP 不生效 | Context reloadable=false | 開發環境設為 true |
Tomcat 6.0 的核心配置圍繞「編碼統一、權限最小化、環境確定性」三大原則。建議將上述配置納入專案部署文檔,並區分開發、測試、生產三套環境參數,透過腳本自動化套用,避免人工疏漏。升級至 Tomcat 9+ 可獲得更好的效能、安全性與 Servlet 4.0 支援,條件允許時應規劃遷移。