讓 Tomcat 知道應用位置 → 建立 Context → 加入 Host → 初始化(解析 web.xml)→ 啟動(Filter/Listener/Servlet)。
<Host appBase="webapps" ...>
<Context docBase="/var/tomcat-test/webapps/TestTomcat"
path="/TestTomcat" reloadable="true"/>
</Host>
server.xml,直接構建 StandardContext 掛載至 Host 子容器。Host.startInternal() 統一啟動所有子 Context。HostConfig 監聽 Host 的 STARTING 事件。deployDescriptors()(XML)→ deployWars()(WAR)→ deployDirectories()(解壓目錄)。StandardContext,設定 docBase、path,加入 Host 觸發啟動。啟動順序:server.xml 配置 > XML 描述符 > WAR > 目錄。
ContainerBase.startInternal() 啟動守護執行緒 backgroundProcessor。Context 下 WEB-INF/web.xml、classes/、lib/ 時間戳。Context.reload() → 停止舊 Context → 重新初始化/啟動。Context 設定 reloadable="true" 啟用(生產建議關閉,效能考量)。理解發布即理解 Context 生命週期;IDE 開發走 server.xml,生產部署丟 WAR 進 webapps,熱部署靠背景執行緒輪詢時間戳,知其然更要知其所以然。