server:乙個server 元素代表整個catalina servlet容器. (單例模式設計)
service:它由乙個或者多個connector組成,以及乙個engine,負責處理所有connector所獲得的客戶請求。
connector:乙個connector將在某個指定埠上偵聽客戶請求,並將獲得的請求交給engine來處理,從engine處獲得回應並返回客戶。
engine:engine下可以配置多個虛擬主機virtual host,每個虛擬主機都有乙個網域名稱。
當engine獲得乙個請求時,它把該請求匹配到某個host上,然後把該請求交給該host來處理。
host:虛擬主機,每個虛擬主機和某個網路網域名稱domain name相匹配。
context:
<
server
port
="8005"
shutdown
="shutdown"
debug
="0"
>
<
listener
classname
="org.apache.catalina.mbeans.serverlifecyclelistener"
debug
="0"
/>
<
listener
classname
="org.apache.catalina.mbeans.globalresourceslifecyclelistener"
debug
="0"
/>
<
globalnamingresources
>
... ... ... ...
globalnamingresources
>
<
service
name
="tomcat-standalone"
>
<
connector
classname
="org.apache.coyote.tomcat4.coyoteconnector"
port
="8080"
minprocessors
="5"
maxprocessors
="75"
acceptcount
="100"
enablelookups
="true"
redirectport
="8443"
debug
="0"
connectiontimeout
="20000"
useurivalidationhack
="false"
disableuploadtimeout
="true"
/>
<
engine
name
="standalone"
defaulthost
="localhost"
debug
="0"
>
<
logger
classname
="org.apache.catalina.logger.filelogger"
.../>
<
realm
classname
="org.apache.catalina.realm.userdatabaserealm"
.../>
<
host
name
="localhost"
debug
="0"
unpackwars
="true"
autodeploy
="true"
>
<
logger
classname
="org.apache.catalina.logger.filelogger"
.../>
<
context
path
=""docbase
="mycontext"
debug
="0"
/>
<
context
path
="/wsota"
docbase
="wsotaproject"
debug
="0"
/>
host
>
engine
>
service
>
server
>
tomcat啟動的時候,先載入server.xml,然後載入web.xml。
Tomcat工作原理
tomcat內存在乙個process連線池,有請求過來會去連線池內獲取process物件對該請求進行處理,連線池有最小連線數和最大連線數,當前請求數超過最大連線數後超出的連線請求將會被丟棄,如果最大連線數設定為負數,則表示無最大連線數限制。乙個process物件接收到請求後不對請求做任何處理,直接建...
Tomcat工作原理
總體結構 tomcat 的結構很複雜,但是 tomcat 也非常的模組化,找到了 tomcat 最核心的模組,您就抓住了 tomcat 的 七寸 下面是 tomcat 的總體結構圖 從 上圖中可以看出 tomcat 的心臟是兩個元件 connector 和 container,關於這兩個元件將在後面...
Tomcat工作原理
engine容器 engine 容器比較簡單,它只定義了一些基本的關聯關係,介面類圖如下 它的標準實現類是 standardengine,這個類注意一點就是 engine 沒有父容器了,如果呼叫 setparent 方法時將會報錯。新增子容器也只能是 host 型別的,如下 public void ...