亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Tomcat整體結構的示例分析

發布時間:2021-08-21 09:22:01 來源:億速云 閱讀:133 作者:小新 欄目:服務器

這篇文章主要介紹了Tomcat整體結構的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Tomcat作為web容器廣為人知,從我最開始學Java一直到現在工作,可以說是伴隨了我的整個編程生涯。Tomcat的本質是一個Servlet容器。一個Servlet能做的事情是:處理請求資源,并為客戶端填充response對象。

Tomcat則負責載入我們編寫的Servlet類,調用Servlet的init()方法,對于一個request請求,創建一個servletRequest和一個servletResponse實例,調用該servlet的service()方法,將servletRequest和servletResponse作為參數傳入,關閉該servlet時,調用destroy()并將其卸載。接下來簡單介紹一下Tomcat整體的結構。

Tomcat整體結構的示例分析

Tomcat 的總體結構

如圖,Tomcat最主要的為兩個組件是連接器(connector)和容器(container)。多個connector和一個container組成一個service,service用于對外提供服務,而service的生命周期由server來控制。server屬于最頂層的抽象。

連接器(connector)用于處理網絡連接相關的事情,如socket連接,request封裝,連接線程池等工作。容器(container)主要處理 connector 接受的請求。Service 只是在 Connector 和 Container 外面多包一層,把它們組裝在一起,向外面提供服務,一個 Service 可以設置多個 Connector,但是只能有一個 Container 容器。所有組件的生命周期都使用lifecycle接口統一管理,里面包含init,start,stop,destory方法。

最初的連接器(connector)只能設置成BIO模式,現在的高版本Tomcat默認的連接模式都是NIO,很大程度上了提升了請求的并發量。

容器(container)在tomcat中一共有4種形式,從頂至下依次是engine,host,context,wrapper。一個wrapper則對應一個servlet,一個context對應一個應用,一個host對應一個站點,engine是引擎,一個容器只有一個。容器之間的啟動都是使用

Tomcat整體結構的示例分析

Tomcat 容器模型

簡單介紹了下Tomcat整個的結構,下面就通過Tomcat一個請求的處理流程來加深理解。假設請求為:http://localhost:8080/test/index.jsp,那么Tomcat的處理流程為

1.請求被發送到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最終會轉換成Servlet)

8.構造htttpservletrequest和httpServletResponse對象,作為參數調用JspServlet的doGet或doPost

9.context把response返回給host

10.host把response返回給engine

11.engine把response返回給connector

12.connector把response返回給用戶瀏覽器,請求結束

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Tomcat整體結構的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新安县| 阳新县| 东乡族自治县| 毕节市| 贵阳市| 安顺市| 奇台县| 黄梅县| 尉氏县| 河曲县| 延川县| 治县。| 洞头县| 勃利县| 裕民县| 杨浦区| 息烽县| 普洱| 集安市| 色达县| 红桥区| 滦平县| 龙游县| 永定县| 石棉县| 九龙城区| 河间市| 普安县| 定边县| 永胜县| 独山县| 淮北市| 神农架林区| 德钦县| 无为县| 尉犁县| 梅州市| 阿克| 监利县| 东丽区| 东台市|