Tomcat 是一個小型的輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試 JSP 程序的首選。今天,就一起來了解下 Tomcat。
授權協議:Apache
開發語言:Java
操作系統:跨平台
開發廠商:Apache
Github:https://github.com/apache/tomcat
Tomcat 簡介
Tomcat 是 Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由 Apache、Sun 和其他一些公司及個人共同開發而成。
Tomcat 服務器是一個免費的開放源代碼的 Web 應用服務器,屬於輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試 JSP 程序的首選。對於一個初學者來說,可以這樣認為,當在一台機器上配置好 Apache 服務器,可利用它響應 HTML (標准通用標記語言下的一個應用)頁面的訪問請求。
實際上 Tomcat 部分是 Apache 服務器的擴展,但它是獨立運行的,所以當你運行 Tomcat 時,它實際上作為一個與 Apache 獨立的進程單獨運行的。
Tomcat 總體結構

Tomcat 大致分為兩個部分,Connector 組件及 Container 組件。Connector 組件負責控制入口連接,並關聯着一個Executor。Container 負責 Servlet 容器的實現,Executor 負責具體的業務邏輯,如 Servlet 的執行。而 Server 服務器控制整個 Tomcat 的生命周期。
Servlet 容器的三種工作模式:
獨立的 Servlet 容器:Servlet 容器與基於 Java 技術的 Web 服務器集成,Servlet 容器與 Web 服務器在同一個 JVM 中運行,作為獨立的 Web 服務器運行。
進程內的 Servlet 容器:Servlet 容器與基於非 Java 技術的 Web 服務器一起使用,通過 Web 服務器插件將 Servlet 容器集成到 Web 服務器中。Web 服務器插件將在Web服務器內部地址空間打開一個 JVM,使得 Servlet 可以在該 JVM 中加載並運行 Servlet。
進程外的 Servlet 容器:該模式也是通過服務器插件的形式將 Servlet 容器與 Web 服務器聯系起來。在該模式下,Web 服務器將 Servlet 容器運行在服務器外部的 JVM中。 Web 服務器插件與 Servlet 容器使用 IPC 機制進行通信。
Tomcat 服務器結構
Tomcat 服務器中可以配置多個 Service,每個 Service 可以包含多個 Connector 和一個 Engine。

一個 Service 只有一個 Engine,其出來來自各個 Connector 的客戶端請求。Engine上可以有多個 Host(Host 指的是虛擬主機,即在物理服務器上配置的多個域名)。每個Host上又可以部署一個或多個 Web 應用,即結構圖中的 Context,而每個應用中又可以配置多個 Servlet 來處理相應的請求。
Tomcat 通過分級的結構將其提供的多服務,多協議,多主機進行層層分解,最終都歸結到一個一個的Servlet來執行具體的任務,這也是 Tomcat 被稱為 Servlet 容器的原因。
Tomcat 很受廣大程序員的喜歡,因為它運行時占用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。
