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

Tomcat 環境搭建全攻略:JSP、Servlet、JavaBean 配置指南

     編輯:關於JSP

軟件準備

安裝與環境變量 (Windows 示例)

  1. 安裝 JDK,假設路徑 D:\Java\jdk-17。
  2. 解壓 Tomcat,假設路徑 D:\Java\apache-tomcat-9.0.80。
  3. 設置系統環境變量:
    • JAVA_HOME=D:\Java\jdk-17
    • CATALINA_HOME=D:\Java\apache-tomcat-9.0.80
    • PATH=%JAVA_HOME%\bin;%CATALINA_HOME%\bin;%PATH%
    • (可選)CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 現代 JDK 不再需要,但舊項目兼容可保留。

驗證安裝

> java -version
> javac -version
> startup.bat
# 瀏覽器訪問 https://localhost:8080 看到 Tomcat 首頁即成功
> shutdown.bat

創建自定義 Web 應用目錄結構

webapps/
└── myapp/
    ├── index.jsp
    ├── WEB-INF/
    │   ├── web.xml
    │   ├── classes/          # 編譯後的 .class 文件
    │   │   └── com/example/  # 包結構
    │   └── lib/              # 依賴 Jar 包
    └── META-INF/             # 可選,context.xml

web.xml 最小配置 (Servlet 4.0+)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://xmlns.jcp.org/xml/ns/javaee
         https://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <display-name>My Web Application</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

測試 index.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<html><body><h2>Hello, JSP!</h2>
當前時間:<%= new java.util.Date() %>
</body></html>

Servlet 開發與配置

  1. 編寫 Servlet 類 (src/com/example/HelloServlet.java):
package com.example;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/hello") // 註解配置,無需 web.xml
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        req.setAttribute("msg", "來自 Servlet 的問候");
        req.getRequestDispatcher("/show.jsp").forward(req, resp);
    }
}
  1. 編譯:javac -cp %CATALINA_HOME%\lib\servlet-api.jar -d webapps\myapp\WEB-INF\classes src\com\example\HelloServlet.java
  2. 訪問 https://localhost:8080/myapp/hello 驗證。

JavaBean 使用

  1. 編寫 Bean (src/com/example/UserBean.java):
package com.example;
public class UserBean {
    private String name;
    private int age;
    // 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; }
}
  1. 編譯至 WEB-INF/classes。
  2. JSP 中使用:
<jsp:useBean id="user" class="com.example.UserBean" scope="session" />
<jsp:setProperty name="user" property="*" /> <!-- 自動綁定請求參數 -->
<h3>歡迎,<jsp:getProperty name="user" property="name" /> (<jsp:getProperty name="user" property="age" /> 歲)</h3>

常見問題與調優

問題解決
端口 8080 被佔用修改 conf/server.xml <Connector port="8081" .../>
中文亂碼1) <%@ page pageEncoding="UTF-8"%> 2) server.xml Connector 添加 URIEncoding="UTF-8" 3) 配置編碼 Filter
修改 JSP 不生效Tomcat 默認開發模式自動重編譯;生產模式需觸發重新部署或設置 development="true"
Session 丟失檢查 Cookie 域/路徑、負載均衡 Sticky Session、context.xml <Manager pathname="" /> 禁用持久化
類加載衝突遵循「父優先」委派模型;WebApp 私有 Jar 放 WEB-INF/lib,勿放入 Tomcat 共享 lib

生產環境建議

  • 使用 systemd/Windows Service 管理 Tomcat 進程。
  • 配置 JMX 監控、GC 日誌、Access Log (Valve)。
  • 啟用 HTTPS:配置 server.xml SSL Connector 或反向代理 (Nginx) 終結 SSL。
  • 調整 JVM 參數:set CATALINA_OPTS=-Xms2g -Xmx4g -XX:+UseG1GC (在 setenv.sh/bat 中)。
  • 定期清理 work/、temp/、logs/ 目錄。

總結

掌握 JDK/Tomcat 安裝、目錄規範、web.xml/註解配置、Servlet/JavaBean 編譯部署,是 Java Web 開發的基礎功。建議新手從手動部署開始理解原理,隨後遷移至 Maven/Gradle + IDE 一鍵部署,最終採用容器化 (Docker) 交付。

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