一、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...