Tomcat系統架構分析

2021-08-30 17:22:42 字數 559 閱讀 1910

那麼這些容器是如何協同工作的呢?先看一下它們之間的關係圖:

當 connector 接受到乙個連線請求時,將請求交給 container,container 是如何處理這個請求的?這四個元件是怎麼分工的,怎麼把請求傳給特定的子容器的呢?又是如何將最終的請求交給 servlet 處理。下面是這個過程的時序圖:

這裡看到了 valve 是不是很熟悉,沒錯 valve 的設計在其他框架中也有用的,同樣 pipeline 的原理也基本是相似的,它是乙個管道,engine 和 host 都會執行這個 pipeline,您可以在這個管道上增加任意的 valve,tomcat 會挨個執行這些 valve,而且四個元件都會有自己的一套 valve 集合。您怎麼才能定義自己的 valve 呢?在 server.xml 檔案中可以新增,如給 engine 和 host 增加乙個 valve 如下:

Tomcat系統架構分析

下面看一下 standardservice 中主要的幾個方法實現的 下面是 setcontainer 和 addconnector 方法的原始碼 standardservice.setcontainer public void setcontainer container container cat...

Tomcat系統架構分析

當 connector 將 socket 連線封裝成 request 和 response 物件後接下來的事情就交給 container 來處理了。回頁首servlet 容器 container server.xml path library docbase d projects library d...

tomcat目錄 系統架構

tomcat頂層結構圖如下 tomcat中最頂層的容器是server,代表著整個伺服器,從上圖中可以看出,乙個server可以包含至少乙個service,用於具體提供服務。service主要包含兩個部分 connector和container。從上圖中可以看出 tomcat 的心臟就是這兩個元件,他...