1. Tomcat結構
Tomcat是一個基于元件的伺服器,它的構成元件都是可配置的,其中最外層的元件是Catalina Servlet容器,其他的元件按照一定的格式要求配置在這個頂層容器中。Tomcat的各個元件是在<TOMCAT_HOME>\conf\server.xml檔案中配置的,Tomcat伺服器預設情況下對各種元件都有預設的實作,下面通過分析server.xml檔案來了解Tomcat的各個元件是如何組織的。server.xml檔案的基本組成結構如下。

XML配置檔案結構
<Server> 頂層類元素:一個配置檔案中隻能有一個<Server>元素,可包含多個Service。
<Service> 頂層類元素:本身不是容器,可包含一個Engine,多個Connector。
<Connector/> 連接配接器類元素:代表通信接口。
<Engine> 容器類元素:為特定的Service元件處理所有客戶請求,可包含多個Host。
<Host> 容器類元素:為特定的虛拟主機處理所有客戶請求,可包含多個Context。
<Context> 容器類元素:為特定的Web應用處理所有客戶請求。
</Context>
</Host>
</Engine>
</Service>
</Server>
1)Service
Service元件是一些Connector元件的集合,它本身不是一個容器,是以在這裡不能定義日志等元件。一個Service元件中隻能有一個Engine元件,可以包含多個Connector元件。
2)Connector元件
Connector元件表示一個接口,通過這個接口接收客戶的請求,然戶發送給其他的容器元件,最後再把伺服器的響應結果傳遞給客戶。
3) Engine, Host和context
上面介紹的3個元件本身并不能處理客戶請求,也不能生成響應。在Tomcat中隻有3個元件是可以處理客戶請求并生成響應的,這3個元件分别是 Engine、Host和Context元件。這3個元件分别代表了不同的服務範圍,通過嵌套關系可以知道3個元件的範圍有如下的關系:Engine>Host>Context。
a.Engine元件下可以包含多個Host元件,它為特定的Service元件處理所有客戶請求。
b.一個Host元件代表一個虛拟主機,一個虛拟主機中可以包含多個Web應用(Context元件)。
c.Context元件代表一個Web應用。
Tomcat的各個元件關系,可以用下圖描述。