Tomcat 是 Servlet/JSP 參考實現,也是初學者最佳實戰容器。本文針對 Tomcat 3.x/4.x/5.x 時代版本,梳理最精簡的「下載 → 解壓 → 環境變量 → 啟動 → 驗證 → 關閉」流程,現代版本 (Tomcat 9/10/11) 同理可循,核心差異僅在目錄結構與預設端口。
https://tomcat.apache.org/ → Download → 選擇版本 → Core: zip/tar.gz (解壓版,推薦) 或 Windows Service Installer (安裝版)D:\Tomcat5 或 /opt/tomcat5變量名: JAVA_HOME
變量值: C:\Java\jdk1.5.0_06 # 指向 JDK 根目錄 (含 bin、lib)
變量名: CATALINA_HOME # 或 TOMCAT_HOME
變量值: D:\Tomcat5 # 指向 Tomcat 解壓根目錄
Path,追加 %JAVA_HOME%\bin;%CATALINA_HOME%\bin%CATALINA_HOME%\binstartup.bat (Windows) 或 ./startup.sh (Linux)Server startup in xxx mshttps://localhost:8080/ (Tomcat 3/4/5/6/7/8/9 默認端口均為 8080)JSP Examples、Servlet Examples 運行內建範例shutdown.bat (Windows) 或 ./shutdown.sh (Linux)| 現象 | 原因 | 解決 |
|---|---|---|
| 雙擊 startup.bat 閃退 | JAVA_HOME 未設或指向 JRE | 設置 JAVA_HOME 指向 JDK 根目錄 |
| 瀏覽器 404 / 無法訪問 | 端口 8080 被佔用、防火牆攔截 | netstat -ano \| findstr :8080 找佔用進程、修改 server.xml port、放行防火牆 |
| JSP 範例報 500 / 類找不到 | JDK 版本過低、tools.jar 缺失 | 升級 JDK 1.5+、確保 JAVA_HOME 指向 JDK |
| 中文亂碼 | URIEncoding 未設、頁面 encoding 不一致 | server.xml Connector 加 URIEncoding="UTF-8"、JSP 頁面 pageEncoding="UTF-8" |
javax.servlet.* → jakarta.servlet.* (Tomcat 10+ / Servlet 5+)common/lib → lib,server/lib、shared/lib 移除context.xml 功能增強、server.xml 默認啟用 NIO (protocol="org.apache.coyote.http11.Http11NioProtocol")Tomcat 安裝配置的核心始終是 JAVA_HOME 指向 JDK、CATALINA_HOME 指向 Tomcat、端口無衝突、編碼統一 UTF-8。初學者建議直接使用 Tomcat 9/10 + OpenJDK 11/17 LTS + IDE 整合 (IntelliJ IDEA / Eclipse / VS Code),跳過手動環境變量配置,專注於 Servlet/JSP 核心語法與 Web 應用架構學習。