TOMCAT工作原理

Tomcat之工作原理

一、TOMCAT描述

  1. tomcat是java web應用服務器,實現了Java EE部分技術規範,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。Java EE 是 Sun 公 司爲企業級應用推出的標準平臺,定義了一系列用於企業級開發的技術規範,除了上述的之外,還有 EJB、Java Mail、JPA、JTA、JMS 等,而這些都依賴具體容器的實現。
  2. tomcat也是JSP/Servlet容器,在作爲Servlet容器,有三種工作模式:獨立的Servlet容器、進程內的Servlet容器和進程外的Servlet容器。

二、TOMCAT組成及原理

  • Server:指的就是整個 Tomcat 服 務器,包含多組服務,負責管理和 啓動各個 Service,同時監聽 8005 端口發過來的 shutdown 命令,用 於關閉整個容器 ;
  • Service:Tomcat 封裝的、對外提 供完整的、基於組件的 web 服務, 包含 Connectors、Container 兩個 核心組件,以及多個功能組件,各 個 Service 之間是獨立的,但是共享 同一 JVM 的資源 ;
  • Connector:Tomcat 與外部世界的連接器,監聽固定端口接收外部請求,傳遞給 Container,並 將 Container 處理的結果返回給外部;
  • Container:Catalina,Servlet 容器,內部有多層容器組成,用於管理 Servlet 生命週期,調用 servlet 相關方法。
  • Loader:封裝了 Java ClassLoader,用於 Container 加載類文件;
  • Realm:Tomcat 中爲 web 應用程序提供訪問認證和角色管理的機制;
  • JMX:Java SE 中定義技術規範,是一個爲應用程序、設備、系統等植入管理功能的框架,通過 JMX 可以遠程監控 Tomcat 的運行狀態;
  • Jasper:Tomcat 的 Jsp 解析引擎,用於將 Jsp 轉換成 Java 文件,並編譯成 class 文件。
  • Session:負責管理和創建 session,以及 Session 的持久化(可自定義),支持 session 的集羣。
  • Pipeline:在容器中充當管道的作用,管道中可以設置各種 valve(閥門),請求和響應在經由管 道中各個閥門處理,提供了一種靈活可配置的處理請求和響應的機制。
  • Naming:命名服務,JNDI, Java 命名和目錄接口,是一組在 Java 應用中訪問命名和目錄服務的 API。命名服務將名稱和對象聯繫起來,使得我們可以用名稱訪問對象,目錄服務也是一種命名 服務,對象不但有名稱,還有屬性。Tomcat 中可以使用 JNDI 定義數據源、配置信息,用於開發 與部署的分離。

  1.Container組成

#http://tomcat.apache.org/下載tomcat
#解壓下載的安裝包
[root@localhost ~]# tar -xf apache-tomcat-8.5.45.tar.gz -C /usr/local/
#創建鏈接
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -sv apache-tomcat-8.5.45 tomcat
  • Engine:Servlet 的頂層容器,包含一 個或多個 Host 子容器;
  • Host:虛擬主機,負責 web 應用的部 署和 Context 的創建;
  • Context:Web 應用上下文,包含多個 Wrapper,負責 web 配置的解析、管 理所有的 Web 資源;
  • Wrapper:最底層的容器,是對 Servlet 的封裝,負責 Servlet 實例的創 建、執行和銷燬。

  2.其它組件

  • Logger:日誌記錄器,一般不能用於context
  • WatchedResource:用於context中監視指定的webapp程序文件的改變,並且能夠在監視到文件內容發生改變時重新裝載此文件
  • manager:用於實現會話管理的功能;

三、TOMCAT安裝

#http://tomcat.apache.org/下載安裝包
#解壓安裝包
[root@localhost ~]# tar -xf apache-tomcat-8.5.45.tar.gz -C /usr/local/
#創建鏈接
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -sv apache-tomcat-8.5.45 tomcat
#配置環境
[root@localhost tomcat]# vim /etc/profile.d/tomcat.sh

export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin

[root@localhost local]# chmod +x /etc/profile.d/tomcat.sh 
[root@localhost local]# . /etc/profile.d/tomcat.sh 
[root@localhost tomcat]# catalina.sh version  #能夠列出信息表示成功

四、TOMCAT目錄結構

[root@localhost tomcat]# tree -L 1 
.
├── bin                  #存放啓動和關閉tomcat腳本
├── BUILDING.txt         #說明編譯tomcat源碼的詳細步驟文件
├── conf                 #存放不同的配置文件(server.xml和web.xml)
├── CONTRIBUTING.md
├── lib                  #存放web應用能訪問的JAR包
├── LICENSE
├── logs                 #Catalina和其它Web應用程序的日誌文件
├── NOTICE               #注意事項說明
├── README.md            #
├── RELEASE-NOTES
├── RUNNING.txt          #運行說明文件
├── temp                 #臨時文件
├── webapps              #Web應用程序根目錄
└── work                 #用以產生有JSP編譯出的Servlet的.java和.class文件

 

發佈了38 篇原創文章 · 獲贊 14 · 訪問量 6390
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章