Servlet 作為 Java Web 開發的核心組件,其生命周期管理與容器交互機制是每位後端開發者必須掌握的硬核知識。
加載 → 實例化 → 服務 → 銷毀
<load-on-startup> 控制啟動時機。ServletRequest 和 ServletResponse。HttpServlet 中已實現,會根據 HTTP 方法分發到 doGet/doPost。<load-on-startup>1</load-on-startup>,讀取 web.xml 實例化關鍵結論:同一 Servlet 類在容器中以單例模式存在,多線程共享實例,因此實例變量非線程安全。
HttpServletRequest 封裝請求信息HttpServletResponse 準備響應HttpServlet.service(request, response)
Client → Tomcat (Connector) → Container (Engine/Host/Context) → Servlet
↓
Request/Response 對象封裝
↓
Filter 鏈 → Servlet 處理 → 返回響應
理解這一流程,能幫助你定位請求處理耗時、線程池調優、異常傳播等生產環境疑難雜症。