這篇文章主要介紹了Tomcat整體結(jié)構(gòu)的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達十余年累計超上千家客戶的網(wǎng)站建設總結(jié)了一套系統(tǒng)有效的推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:酒樓設計等企業(yè),備受客戶稱贊。Tomcat作為web容器廣為人知,從我最開始學Java一直到現(xiàn)在工作,可以說是伴隨了我的整個編程生涯。Tomcat的本質(zhì)是一個Servlet容器。一個Servlet能做的事情是:處理請求資源,并為客戶端填充response對象。
Tomcat則負責載入我們編寫的Servlet類,調(diào)用Servlet的init()方法,對于一個request請求,創(chuàng)建一個servletRequest和一個servletResponse實例,調(diào)用該servlet的service()方法,將servletRequest和servletResponse作為參數(shù)傳入,關閉該servlet時,調(diào)用destroy()并將其卸載。接下來簡單介紹一下Tomcat整體的結(jié)構(gòu)。
Tomcat 的總體結(jié)構(gòu)
如圖,Tomcat最主要的為兩個組件是連接器(connector)和容器(container)。多個connector和一個container組成一個service,service用于對外提供服務,而service的生命周期由server來控制。server屬于最頂層的抽象。
連接器(connector)用于處理網(wǎng)絡連接相關的事情,如socket連接,request封裝,連接線程池等工作。容器(container)主要處理 connector 接受的請求。Service 只是在 Connector 和 Container 外面多包一層,把它們組裝在一起,向外面提供服務,一個 Service 可以設置多個 Connector,但是只能有一個 Container 容器。所有組件的生命周期都使用lifecycle接口統(tǒng)一管理,里面包含init,start,stop,destory方法。
最初的連接器(connector)只能設置成BIO模式,現(xiàn)在的高版本Tomcat默認的連接模式都是NIO,很大程度上了提升了請求的并發(fā)量。
容器(container)在tomcat中一共有4種形式,從頂至下依次是engine,host,context,wrapper。一個wrapper則對應一個servlet,一個context對應一個應用,一個host對應一個站點,engine是引擎,一個容器只有一個。容器之間的啟動都是使用
Tomcat 容器模型
簡單介紹了下Tomcat整個的結(jié)構(gòu),下面就通過Tomcat一個請求的處理流程來加深理解。假設請求為:http://localhost:8080/test/index.jsp,那么Tomcat的處理流程為
1.請求被發(fā)送到8080端口,被connector獲得。
2.connector把請求交給他所在的service的engine處理,等待engine回應。
3.engine獲得請求地址,匹配虛擬主機host
4.engine匹配到名為localhost的host,該host獲得請求為 /test/index.jsp,匹配該host擁有的context
5.host匹配到路徑為/test的context,若匹配不到則交給名為“空的context處理
6.該context獲得請求/index.jsp,在映射文件中尋找對應的servlet
7.context匹配到模式為*.jsp的servlet,找到對應JspServlet類(Jsp最終會轉(zhuǎn)換成Servlet)
8.構(gòu)造htttpservletrequest和httpServletResponse對象,作為參數(shù)調(diào)用JspServlet的doGet或doPost
9.context把response返回給host
10.host把response返回給engine
11.engine把response返回給connector
12.connector把response返回給用戶瀏覽器,請求結(jié)束
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Tomcat整體結(jié)構(gòu)的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設計公司,關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道,更多相關知識等著你來學習!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、網(wǎng)站設計器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。