tomcat源碼分析(一)

tomcat代碼看似很龐大,但從結構上看卻很清晰和簡單,它主要由一堆組件組成,如Server、Service、Connector等,并基于JMX管理這些組件,另外實現以上接口的組件也實現了代表生存期的接口Lifecycle,使其組件履行固定的生存期,在其整個生存期的過程中通過事件偵聽LifecycleEvent實現擴展。Tomcat的核心類圖如下所示:


Catalina:開始/關閉shell腳本交互的主類,要研究啟動和關閉的過程

Server:是整個Tomcat組件的容器,包含一個或多個Service

Service:Service是包含Connector和Container的集合,Service用適當的Connector接收用戶的請求,再發(fā)給相應的Container來處理。

Connector:實現某一協議的連接器,如默認的有實現HTTP、HTTPS、AJP協議的。

Container:可以理解為處理某類型請求的容器,處理的方式一般為把處理請求的處理器包裝為Valve對象,并按一定順序放入類型為Pipeline的管道里。Container有多種子類型:Engine、Host、Context和Wrapper,這幾種類型Container依次包含,處理不同粒度的請求

Engine:Engine包含Host和Context,接到請求后仍給相應的Host在相應的Context里處理。

Host:就是我們所理解的虛擬主機。

Context:就是我們所部屬的具體Web應用的上下文,每個請求都在是相應的上下文里處理的。

Wrapper:Wrapper是針對每個Servlet的Container,每個Servlet都有相應的Wrapper來管理。

分析完核心類后,看下Tomcat啟動的過程,Tomcat啟動時序圖如下:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容