簡單總結Tomcat整體結構和工作原理

2021-08-20 13:00:45 字數 2145 閱讀 4687

一、tomcat 軟體目錄結構及功能

bin: 服務相關指令碼,例如:啟動、關閉等

conf: 存放不同的配置檔案,列如:server.xml、web.xml

lib: tomcat 執行需要的庫檔案

logs: 執行的日誌檔案

work :存放jsp編譯後的class檔案

二、server分析系統結構

server

提供乙個介面讓其它程式能夠訪問到這個 service 集合、同時要維護它所包含的所有 service 的生命週期,包括如何初始化、如何結束服務、如何找到別人要訪問的 service

service

service 是server下乙個集合,service包含多個接收請求的connector並有乙個處理所有連線的容器container

connector

connector 作用是監聽客戶端請求,並將請求封裝提交container處理,然後將處理結果返回客戶端

tomcat有兩個典型的connector,乙個用來監聽瀏覽器的http,另乙個是用來監聽webservice

coyote http/1.1 connector 在埠8080處偵聽來自客戶browser的http請求

coyote ajp/1.3 connector 在埠8009處偵聽來自其它webserver(apache)的servlet/jsp**請求

container

4.1 engine

engine下可以配置多個虛擬主機virtual host,每個虛擬主機都有乙個網域名稱

當engine獲得乙個請求時,它把該請求匹配到某個host上,然後把該請求交給該host來處理

engine有乙個預設虛擬主機,當請求無法匹配到任何乙個host上的時候,將交給該預設host來處理

4.2 host

代表乙個virtual host,虛擬主機,每個虛擬主機和某個網路網域名稱domain name相匹配

當host獲得乙個請求時,將把該請求匹配到某個context上,然後把該請求交給該context來處理

匹配的方法是「最長匹配」,所以乙個path==""的context將成為該host的預設context

所有無法和其它context的路徑名匹配的請求都將最終和該預設context匹配

4.3 context

如果找到,則執行該類,獲得請求的回應,並返回。

- context的部署配置檔案web.xml的說明

它首先載入在$catalina_home/conf/web.xml中部署的servlet類

web.xml檔案有兩部分:servlet類定義和servlet對映定義

三、例子

tomcat server處理乙個http請求的過程

假設來自客戶的請求為:

請求被傳送到本機埠8080,被在那裡偵聽的coyote http/1.1 connector獲得

connector把該請求交給它所在的service的engine來處理,並等待來自engine的回應

engine獲得請求localhost/wsota/wsota_index.jsp,匹配它所擁有的所有虛擬主機host

engine匹配到名為localhost的host(即使匹配不到也把請求交給該host處理,因為該host被定義為該engine的預設主機)

localhost host獲得請求/wsota/wsota_index.jsp,匹配它所擁有的所有context

host匹配到路徑為/wsota的context(如果匹配不到就把該請求交給路徑名為""的context去處理)

context匹配到url pattern為*.jsp的servlet,對應於jspservlet類

構造httpservletrequest物件和httpservletresponse物件,作為引數呼叫jspservlet的doget或dopost方法

context把執行完了之後的httpservletresponse物件返回給host

host把httpservletresponse物件返回給engine

engine把httpservletresponse物件返回給connector

connector把httpservletresponse物件返回給客戶browser

Tomcat整體結構簡單介紹

tomcat作為web容器廣為人知,從我最開始學一直到現在工作,可以說是伴隨了我的整個程式設計生涯。tomcat的本質是乙個servlet容器。乙個servlet能做的事情是 處理請求資源,並為客戶端填充response物件。tomcat則負責載入我們編寫的servlet類,呼叫s程式設計客棧erv...

Tomcat目錄結構簡單說明

tomcat目錄結構tomcat8.5.43 目錄結構檔名不得加中文和空格,程式設計除了易語言最好還是別用中文 bin 二進位制執行檔案。裡面最常用的檔案是startup.bat,如果是 linux 或 mac 系統啟動檔案為 startup.sh,shutdown.bat是停止執行tomcat。c...

線性結構的簡單總結

大二上學了資料結構,對各種線性結構的結構體如何定義,和一些基本操作 簡單總結一下 一 線性表 順序表結構體 typedef struct elemtype elem 儲存空間基址 int length 當前長度 int listsize 當前分配的儲存容量 sqlist 基本操作 構造線性表 l.e...