1. tomcat是誰?

2. tomcat可以做什么?
tomcat是一個web容器,可以將web應用部署到tomcat,由它提供web服務,一個web容器中可以部署多個web應用,這些web應用可以是同一個域名,也可以是多個域名的服務。
3. tomcat有哪些組件

4.怎么快速理解這些組件呢?
我們可以假設我們來設計一個web容器,我們該什么設計?
第一代:接收請求,處理請求,返回結果集中到整個web容器中,如下圖所示:

第二代 :連接管理和處理邏輯分開
使用過程中發現,每次都要打開socket的連接,調用處理邏輯,然后關閉socket連接比較煩,干脆將socket的連接關閉交給Connector來處理,請求的業務邏輯交給Container來處理好了,就變成這樣了。

第三代:支持多種網絡協議
最初的目標是設計一個web服務器或者容器,那么如果想要支持更多的協議就需要新建不同的Connector和Container,此時就變成這樣子了,其中service包裝了Connector和Container

第四代:支持多個web應用
既然是容器,就要支持多個應用,每個應用是有一個Context,且相互隔離,支持多個Context的架構如下:

第五代:支持多域名
Context上下文不僅僅需要物理上的隔離,也需要邏輯上的隔離,如app1.example.com訪問context1,app1.test.com訪問context2.
此時的架構應該是這樣的,host可以支持多個context。

5.總結:
- web服務器的組件由server-->滿足功能
- server+connector+Container-->職責分離
- server+service+connector+Container-->支持多種協議
- server+service+connector+Container+context-->支持多個應用
- server+service+connector+Container+host+context -->支持多個域名的多個應用
其實就是一個分工組件細化的過程,類似于社會分工的細化,注意,Container在tomcat里也稱作engine。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。