tomcat學(xué)習(xí)

Tomcat組成與工作原理

簡介

開源的 Java Web 應(yīng)用服務(wù)器,實現(xiàn)了 Java EE(Java Platform Enterprise Edition)的部 分技術(shù)規(guī)范,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。

架構(gòu)

主要有 Container 和 Connector 以及相關(guān)組件構(gòu)成。

  • Server:指的就是整個 Tomcat 服 務(wù)器,包含多組服務(wù),負責管理和 啟動各個 Service,同時監(jiān)聽 8005 端口發(fā)過來的 shutdown 命令,用 于關(guān)閉整個容器 ;

  • Service:Tomcat 封裝的、對外提 供完整的、基于組件的 web 服務(wù), 包含 Connectors、Container 兩個 核心組件,以及多個功能組件,各 個 Service 之間是獨立的,但是共享 同一 JVM 的資源 ;

  • Connector:Tomcat 與外部世界的連接器,監(jiān)聽固定端口接收外部請求,傳遞給 Container,并 將 Container 處理的結(jié)果返回給外部;

  • Container:Catalina,Servlet 容器,內(nèi)部有多層容器組成,用于管理 Servlet 生命周期,調(diào)用 servlet 相關(guān)方法。

  • Loader:封裝了 Java ClassLoader,用于 Container 加載類文件; Realm:Tomcat 中為 web 應(yīng)用程序提供訪問認證和角色管理的機制;

  • JMX:Java SE 中定義技術(shù)規(guī)范,是一個為應(yīng)用程序、設(shè)備、系統(tǒng)等植入管理功能的框架,通過 JMX 可以遠程監(jiān)控 Tomcat 的運行狀態(tài);

  • Jasper:Tomcat 的 Jsp 解析引擎,用于將 Jsp 轉(zhuǎn)換成 Java 文件,并編譯成 class 文件。 Session:負責管理和創(chuàng)建 session,以及 Session 的持久化(可自定義),支持 session 的集 群。

  • Pipeline:在容器中充當管道的作用,管道中可以設(shè)置各種 valve(閥門),請求和響應(yīng)在經(jīng)由管 道中各個閥門處理,提供了一種靈活可配置的處理請求和響應(yīng)的機制。

  • Naming:命名服務(wù),JNDI, Java 命名和目錄接口,是一組在 Java 應(yīng)用中訪問命名和目錄服務(wù)的 API。命名服務(wù)將名稱和對象聯(lián)系起來,使得我們可以用名稱訪問對象,目錄服務(wù)也是一種命名 服務(wù),對象不但有名稱,還有屬性。Tomcat 中可以使用 JNDI 定義數(shù)據(jù)源、配置信息,用于開發(fā) 與部署的分離。

Container組成

  • Engine:Servlet 的頂層容器,包含一 個或多個 Host 子容器;
  • Host:虛擬主機,負責 web 應(yīng)用的部 署和 Context 的創(chuàng)建;
  • Context:Web 應(yīng)用上下文,包含多個 Wrapper,負責 web 配置的解析、管 理所有的 Web 資源;
  • Wrapper:最底層的容器,是對 Servlet 的封裝,負責 Servlet 實例的創(chuàng) 建、執(zhí)行和銷毀。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容