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

Tomcat 環境配置全攻略:JSP、Servlet、JavaBean 完整部署指南

     編輯:Java 相關知識

Tomcat 是最流行的 Servlet 容器。本文提供從 JDK 安裝、Tomcat 部署、Web 應用目錄結構、Servlet/JSP/JavaBean 開發部署到驗證的標準化全流程指南,適用於 Tomcat 5.x 至 10.x 版本。

一、基礎環境安裝

1.1 JDK 安裝與配置

  • 下載:Oracle JDK / OpenJDK (建議 LTS:8、11、17、21)
  • 安裝路徑無空格、無中文:如 `D:\Java\jdk-17`
  • 環境變數:
    
    JAVA_HOME=D:\Java\jdk-17
    PATH=%JAVA_HOME%\bin;%PATH%
    CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
    
  • 驗證:`java -version`、`javac -version`

1.2 Tomcat 安裝與配置

  • 下載:Binary Distributions → Core → `apache-tomcat-.zip`
  • 解壓至無空格路徑:`D:\Java\apache-tomcat-9.0.85`
  • 環境變數 (可選):
    
    CATALINA_HOME=D:\Java\apache-tomcat-9.0.85
    CATALINA_BASE=D:\Java\apache-tomcat-9.0.85
    PATH=%CATALINA_HOME%\bin;%PATH%
    
  • 驅動 jar 放入 `$CATALINA_HOME/lib/` (JDBC、連線池等共享庫)

1.3 驗證安裝

  • 啟動:`startup.bat` / `startup.sh`
  • 瀏覽器:`https://localhost:8080` 顯示 Tomcat 首頁
  • 關閉:`shutdown.bat` / `shutdown.sh`

二、Web 應用標準目錄結構


myapp/                    ← Context Root
├── index.jsp             ← 歡迎頁
├── WEB-INF/              ← 安全目錄,客戶端不可直接訪問
│   ├── web.xml           ← 部署描述符 (Servlet 3.0+ 可選)
│   ├── classes/          ← 編譯後類文件 (包結構)
│   │   └── com/example/
│   │       ├── MyServlet.class
│   │       └── MyBean.class
│   └── lib/              ← 應用專用 jar (不共享)
│       └── ojdbc8.jar
└── static/               ← 靜態資源
    ├── css/
    ├── js/
    └── images/

三、JSP 開發與部署

3.1 建立 JSP

文件:`myapp/index.jsp`


<%@ page contentType="text/html; charset=UTF-8" %>

JSP 測試

當前時間: <%= new java.util.Date() %>

3.2 部署方式

  1. 目錄部署:將 `myapp` 複製至 `$CATALINA_HOME/webapps/`,Tomcat 自動熱部署
  2. WAR 部署:`jar -cvf myapp.war -C myapp .`,放入 `webapps/`
  3. Context 配置:`$CATALINA_HOME/conf/Catalina/localhost/myapp.xml` 指定 `docBase`

3.3 訪問驗證

`https://localhost:8080/myapp/index.jsp`

四、Servlet 開發與部署

4.1 編寫 Servlet (Servlet 3.0+ 註解模式)

文件:`myapp/WEB-INF/classes/com/example/HelloServlet.java`


package com.example;

import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import java.io.IOException;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
            throws IOException {
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().write("

Servlet 3.0+ 註解模式測試成功

"); } }

注意:Tomcat 10+ 使用 `jakarta.servlet.*`,Tomcat 9 及以下用 `javax.servlet.*`

4.2 編譯


# 進入 WEB-INF/classes 父目錄
javac -cp "$CATALINA_HOME/lib/servlet-api.jar" com/example/HelloServlet.java
# 或使用 Maven/Gradle 管理依賴編譯

4.3 部署描述符模式 (web.xml) - 兼容舊版




    
        HelloServlet
        com.example.HelloServlet
    
    
        HelloServlet
        /hello
    

4.4 訪問驗證

`https://localhost:8080/myapp/hello`

五、JavaBean 開發與部署

5.1 編寫 Bean

文件:`myapp/WEB-INF/classes/com/example/UserBean.java`


package com.example;

public class UserBean {
    private String name;
    private int age;
    
    // 無參構造器 (必要)
    public UserBean() {}
    
    // Getter/Setter
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
    
    // 業務方法
    public String greet() { return "Hello, " + name + " (age " + age + ")"; }
}

5.2 編譯

同 Servlet 編譯方式

5.3 JSP 中使用 Bean

文件:`myapp/useBean.jsp`


<%@ page contentType="text/html; charset=UTF-8" %>

    
    



<%= user.greet() %>

5.4 訪問驗證

`https://localhost:8080/myapp/useBean.jsp`

六、常見問題排查表

現象可能原因解決方案
404 Not FoundContext Path 錯誤、部署未生效、url-pattern 不匹配檢查 `webapps` 目錄、Tomcat 日誌、`web.xml`/`@WebServlet` 映射
500 Internal Server Error類找不到、方法異常、編碼問題查看 `catalina.out`/`localhost..log` 堆疊追蹤
ClassNotFoundException類未編譯、包結構錯誤、放錯目錄確認 `WEB-INF/classes/包名/類名.class` 存在
中文亂碼JSP 編碼、請求/響應編碼、資料庫編碼不一致統一 UTF-8:JSP `pageEncoding`、Filter 設定 `request/response` 編碼、DB 連線字串
修改 JSP 不生效生產環境 `reloadable=false`、JSP 編譯快取開發環境啟用熱部署、清理 `work` 目錄、重啟 Tomcat

七、生產環境優化清單

  1. JVM 參數:`-Xms2g -Xmx2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200`
  2. 關閉自動部署:`autoDeploy="false"`、`deployOnStartup="false"`
  3. 連接器調優:`maxThreads="200"` `acceptCount="100"` `connectionTimeout="20000"`
  4. 啟用壓縮:`compression="on"` `compressibleMimeType="text/html,text/xml,application/json"`
  5. 安全配置:移除預設應用、禁用目錄列表、配置 SSL/TLS、Valve 限流
  6. 監控整合:JMX Exporter + Prometheus + Grafana

總結

Tomcat 配置核心在於:JDK 基礎 → 容器安裝 → 標準目錄結構 → 類文件正確編譯部署 → 部署描述符/註解映射 → 驗證訪問。掌握此標準流程,可避開 90% 初學者配置坑。現代開發建議:Maven/Gradle 管理構建、Spring Boot 內嵌容器簡化部署、Docker 容器化交付、Kubernetes 編排運維。

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