欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎樣解析Tomcat內(nèi)部結(jié)構(gòu)和請(qǐng)求過程

怎樣解析Tomcat內(nèi)部結(jié)構(gòu)和請(qǐng)求過程,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

為三明等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及三明網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、三明網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

概述

Tomcat是一個(gè)JSP/Servlet容器。其作為Servlet容器,有三種工作模式:獨(dú)立的Servlet容器、進(jìn)程內(nèi)的Servlet容器和進(jìn)程外的Servlet容器。

Tomcat的組織結(jié)構(gòu)

Tomcat是一個(gè)基于組件的服務(wù)器,它的構(gòu)成組件都是可配置的,其中最外層的是Catalina  servlet容器,其他組件按照一定的格式要求配置在這個(gè)頂層容器中。

Tomcat的各種組件都是在Tomcat安裝目錄下的/conf/server.xml文件中配置的。

由Server.xml的結(jié)構(gòu)看Tomcat的體系結(jié)構(gòu)

怎樣解析Tomcat內(nèi)部結(jié)構(gòu)和請(qǐng)求過程

由上可得出Tomcat的體系結(jié)構(gòu):

怎樣解析Tomcat內(nèi)部結(jié)構(gòu)和請(qǐng)求過程

Tomcat的體系結(jié)構(gòu)

由上圖可看出Tomca的心臟是兩個(gè)組件:Connecter和Container。一個(gè)Container可以選擇多個(gè)Connecter,多個(gè)Connector和一個(gè)Container就形成了一個(gè)Service。Service可以對(duì)外提供服務(wù),而Server服務(wù)器控制整個(gè)Tomcat的生命周期。

  • 組件的生命線“Lifecycle”

  • Service 和 Server 管理它下面組件的生命周期。

  • Tomcat 中組件的生命周期是通過 Lifecycle  接口來控制的,組件只要繼承這個(gè)接口并實(shí)現(xiàn)其中的方法就可以統(tǒng)一被擁有它的組件控制了,這樣一層一層的直到一個(gè)最高級(jí)的組件就可以控制 Tomcat  中所有組件的生命周期,這個(gè)最高的組件就是 Server,而控制 Server 的是 Startup,也就是您啟動(dòng)和關(guān)閉 Tomcat。

Tomca的兩大組件:Connecter和Container

Connecter組件

一個(gè)Connecter將在某個(gè)指定的端口上偵聽客戶請(qǐng)求,接收瀏覽器的發(fā)過來的 tcp 連接請(qǐng)求,創(chuàng)建一個(gè) Request 和 Response  對(duì)象分別用于和請(qǐng)求端交換數(shù)據(jù),然后會(huì)產(chǎn)生一個(gè)線程來處理這個(gè)請(qǐng)求并把產(chǎn)生的 Request 和 Response  對(duì)象傳給處理Engine(Container中的一部分),從Engine出獲得響應(yīng)并返回客戶。

Tomcat中有兩個(gè)經(jīng)典的Connector,一個(gè)直接偵聽來自Browser的HTTP請(qǐng)求,另外一個(gè)來自其他的WebServer請(qǐng)求。Cotote  HTTP/1.1 Connector在端口8080處偵聽來自客戶Browser的HTTP請(qǐng)求,Coyote JK2  Connector在端口8009處偵聽其他Web Server的Servlet/JSP請(qǐng)求。

Connector 最重要的功能就是接收連接請(qǐng)求然后分配線程讓 Container 來處理這個(gè)請(qǐng)求,所以這必然是多線程的,多線程的處理是  Connector 設(shè)計(jì)的核心。

Container組件

Container的體系結(jié)構(gòu)如下:

怎樣解析Tomcat內(nèi)部結(jié)構(gòu)和請(qǐng)求過程

Container的體系結(jié)構(gòu)

Container是容器的父接口,該容器的設(shè)計(jì)用的是典型的責(zé)任鏈的設(shè)計(jì)模式,它由四個(gè)自容器組件構(gòu)成,分別是Engine、Host、Context、Wrapper。這四個(gè)組件是負(fù)責(zé)關(guān)系,存在包含關(guān)系。通常一個(gè)Servlet  class對(duì)應(yīng)一個(gè)Wrapper,如果有多個(gè)Servlet定義多個(gè)Wrapper,如果有多個(gè)Wrapper就要定義一個(gè)更高的Container,如Context。

Context 還可以定義在父容器 Host 中,Host 不是必須的,但是要運(yùn)行 war 程序,就必須要 Host,因?yàn)?war 中必有 web.xml  文件,這個(gè)文件的解析就需要 Host 了,如果要有多個(gè) Host 就要定義一個(gè) top 容器 Engine 了。而 Engine 沒有父容器了,一個(gè)  Engine 代表一個(gè)完整的 Servlet 引擎。

  • Engine 容器

  • Engine 容器比較簡(jiǎn)單,它只定義了一些基本的關(guān)聯(lián)關(guān)系

  • Host 容器

  • Host 是 Engine 的字容器,一個(gè) Host 在 Engine  中代表一個(gè)虛擬主機(jī),這個(gè)虛擬主機(jī)的作用就是運(yùn)行多個(gè)應(yīng)用,它負(fù)責(zé)安裝和展開這些應(yīng)用,并且標(biāo)識(shí)這個(gè)應(yīng)用以便能夠區(qū)分它們。它的子容器通常是  Context,它除了關(guān)聯(lián)子容器外,還有就是保存一個(gè)主機(jī)應(yīng)該有的信息。

  • Context 容器

  • Context 代表 Servlet 的 Context,它具備了 Servlet 運(yùn)行的基本環(huán)境,理論上只要有 Context 就能運(yùn)行 Servlet  了。簡(jiǎn)單的 Tomcat 可以沒有 Engine 和 Host。Context 最重要的功能就是管理它里面的 Servlet 實(shí)例,Servlet 實(shí)例在  Context 中是以 Wrapper 出現(xiàn)的,還有一點(diǎn)就是 Context 如何才能找到正確的 Servlet 來執(zhí)行它呢? Tomcat5 以前是通過一個(gè)  Mapper 類來管理的,Tomcat5 以后這個(gè)功能被移到了 request 中,在前面的時(shí)序圖中就可以發(fā)現(xiàn)獲取子容器都是通過 request  來分配的。

  • Wrapper 容器

  • Wrapper 代表一個(gè) Servlet,它負(fù)責(zé)管理一個(gè) Servlet,包括的 Servlet 的裝載、初始化、執(zhí)行以及資源回收。Wrapper  是最底層的容器,它沒有子容器了,所以調(diào)用它的 addChild 將會(huì)報(bào)錯(cuò)。

  • Wrapper 的實(shí)現(xiàn)類是 StandardWrapper,StandardWrapper 還實(shí)現(xiàn)了擁有一個(gè) Servlet 初始化信息的  ServletConfig,由此看出 StandardWrapper 將直接和 Servlet 的各種信息打交道。

Tomcat 中其它組件

Tomcat 還有其它重要的組件,如安全組件 security、logger 日志組件、session、mbeans、naming  等其它組件。這些組件共同為 Connector 和 Container 提供必要的服務(wù)。

Tomcat Server處理一個(gè)HTTP請(qǐng)求的過程

怎樣解析Tomcat內(nèi)部結(jié)構(gòu)和請(qǐng)求過程

Tomcat Server處理一個(gè)HTTP請(qǐng)求的過程

Tomcat Server處理一個(gè)HTTP請(qǐng)求的過程

1、用戶點(diǎn)擊網(wǎng)頁內(nèi)容,請(qǐng)求被發(fā)送到本機(jī)端口8080,被在那里監(jiān)聽的Coyote HTTP/1.1 Connector獲得。

2、Connector把該請(qǐng)求交給它所在的Service的Engine來處理,并等待Engine的回應(yīng)。

3、Engine獲得請(qǐng)求localhost/test/index.jsp,匹配所有的虛擬主機(jī)Host。

4、Engine匹配到名為localhost的Host(即使匹配不到也把請(qǐng)求交給該Host處理,因?yàn)樵揌ost被定義為該Engine的默認(rèn)主機(jī)),名為localhost的Host獲得請(qǐng)求/test/index.jsp,匹配它所擁有的所有的Context。Host匹配到路徑為/test的Context(如果匹配不到就把該請(qǐng)求交給路徑名為“  ”的Context去處理)。

5、path=“/test”的Context獲得請(qǐng)求/index.jsp,在它的mapping  table中尋找出對(duì)應(yīng)的Servlet。Context匹配到URL PATTERN為*.jsp的Servlet,對(duì)應(yīng)于JspServlet類。

6、構(gòu)造HttpServletRequest對(duì)象和HttpServletResponse對(duì)象,作為參數(shù)調(diào)用JspServlet的doGet()或doPost().執(zhí)行業(yè)務(wù)邏輯、數(shù)據(jù)存儲(chǔ)等程序。

7、Context把執(zhí)行完之后的HttpServletResponse對(duì)象返回給Host。

8、Host把HttpServletResponse對(duì)象返回給Engine。

9、Engine把HttpServletResponse對(duì)象返回Connector。

10、Connector把HttpServletResponse對(duì)象返回給客戶Browser。

關(guān)于怎樣解析Tomcat內(nèi)部結(jié)構(gòu)和請(qǐng)求過程問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

分享文章:怎樣解析Tomcat內(nèi)部結(jié)構(gòu)和請(qǐng)求過程
轉(zhuǎn)載注明:http://aaarwkj.com/article48/gjdchp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站策劃、服務(wù)器托管、ChatGPT、微信小程序營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
国产成人自拍激情视频| 日韩中文字幕专区在线| 99热这里只有精品56| 国产亚洲一区二区自拍视频| 国产精品三级玖玖玖电影| 激情亚洲欧美日韩精品| 日韩亚洲一区二区免费| 自由成熟性生活免费视频| 午夜国产激情福利网站| 免费黄片视频大全在线播放 | 亚洲中文有码一区二区| 久久久精品在线免费视频| 97超碰国产在线观看| 黄色国产一区二区三区| 午夜影院免费在线观看五分钟| 一区二区三区高清人妻| 蜜桃成人一区二区三区| 亚洲综合国产一区二区| 九月丁香花开综合网| 少妇高潮一区二区三区在线| 日本美女午夜福利视频| 欧美日韩av在线一区二区| 青青草原成年人免费看| 四虎免费在线高清观看| 亚洲成人av在线播放观看| 日本精品在线亚洲国产欧美| 手机看片黄色福利视频91| 中文字幕日韩av综合在线| 开心激情欧美一区二区| 精品国产综合一区二区三区 | 日本久久精品免费网站| 有码国内精品人妻少妇| 亚洲欧美日韩精品区| 中文字幕一区中出爽亚洲| 亚洲日本欧洲二区精品| 国产美女精品一区二区三区| 国产熟女一区二区精品视频| 日本不卡视频二区三区| 亚洲小说欧美激情另类| 国产黄色一区二区三区| 综合国产精品久久久久久|