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

Tomcat 默認 Servlet 深度解析:DefaultServlet 與 web.xml 核心配置

     編輯:Java 綜合教學

Tomcat 默認 Servlet 深度解析:DefaultServlet 與 web.xml 核心配置

一、 DefaultServlet 註冊與映射

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

二、 核心機制

  1. 全局生效:$CATALINA_BASE/conf/web.xml 中的定義在 Tomcat 啟動時加載,對所有 Web 應用生效。
  2. 請求分發鏈路:所有請求先嘗試匹配應用自定義的 Servlet;若無匹配,則落入 DefaultServlet(映射 /)。
  3. 核心職責:
    • 靜態資源服務(HTML、CSS、JS、圖片等)。
    • 目錄列表(listings=true 時)。
    • 歡迎文件解析(welcome-file-list)。
  4. 關鍵初始化參數:
    • debug:日誌級別(0 關閉)。
    • listings:是否允許目錄瀏覽,生產環境建議 false。

三、 實戰啟示

  • 應用層 web.xml 可覆蓋默認 Servlet 映射(如映射 /static/* 到自定義 Servlet)。
  • 生產環境務必關閉 listings,防止目錄結構洩露。
  • load-on-startup: 1 確保容器啟動即實例化,減少首次請求延遲。

掌握 DefaultServlet 的註冊與職責,有助於排查靜態資源 404、目錄遍歷風險等常見問題。

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