国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識(shí)|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - Tomcat - tomcat中Servlet的工作機(jī)制詳細(xì)介紹

tomcat中Servlet的工作機(jī)制詳細(xì)介紹

2021-08-17 16:50wangyangzhizhou Tomcat

這篇文章主要介紹了tomcat中Servlet的工作機(jī)制詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下

tomcat中servlet的工作機(jī)制

在研究servlet在tomcat中的工作機(jī)制前必須先看看servlet規(guī)范的一些重要的相關(guān)規(guī)定,規(guī)范提供了一個(gè)servlet接口,接口中包含的重要方法是init、service、destroy等方法,servlet在初始化時(shí)要調(diào)用init方法,在銷毀時(shí)要調(diào)用destroy方法,而對(duì)客戶端請(qǐng)求處理時(shí)則調(diào)用service方法。對(duì)于這些機(jī)制的支持都必須由tomcat內(nèi)部去支持,具體則是由wrapper容器提供支持。

在tomcat中消息流的流轉(zhuǎn)機(jī)制是通過四個(gè)不同級(jí)別的容器管道機(jī)制進(jìn)行流轉(zhuǎn)的,對(duì)于每個(gè)請(qǐng)求都是一層一層處理的。如下圖,當(dāng)客戶端請(qǐng)求到達(dá)服務(wù)端后請(qǐng)求被抽象成request對(duì)象后向四個(gè)容器進(jìn)行傳遞,首先經(jīng)過engine容器的管道通過若干閥門,最后通過standardenginevalve閥門流轉(zhuǎn)到host容器的管道,處理后繼續(xù)往下流轉(zhuǎn),通過standardhostvalve閥門流轉(zhuǎn)到context容器的管道,繼續(xù)往下流轉(zhuǎn),通過standardcontextvalve閥門流轉(zhuǎn)到wrapper容器的管道,而對(duì)servlet的核心處理也正是在standardwrappervalve閥門中。standardwrappervalve閥門調(diào)用servlet的service方法隊(duì)請(qǐng)求進(jìn)行處理,然后對(duì)客戶端響應(yīng)。

tomcat中Servlet的工作機(jī)制詳細(xì)介紹

下面更深入了解下standardwrappervalve閥門調(diào)用servlet的過程。

web應(yīng)用的servlet類都是根據(jù)servlet接口,例如一般我們?cè)趯憳I(yè)務(wù)處理servlet類時(shí)都會(huì)繼承httpservlet類,為了遵循servlet規(guī)范,它其實(shí)最終也是實(shí)現(xiàn)了servlet接口,只是httpservlet定義了http協(xié)議的servlet,將協(xié)議共性的東西抽離出來復(fù)用。servlet處理客戶端請(qǐng)求的核心方法為service方法,所以對(duì)于httpservlet來說,它需要針對(duì)http協(xié)議的get、post、pu、delete、head、options、trace等請(qǐng)求方法做出不同的分發(fā)處理,為方便理解,下面用個(gè)簡(jiǎn)化的代碼展示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public abstract class httpservlet extends servlet{
  public void service(servletrequest req, servletresponse res) throws servletexception, ioexception {
    httpservletrequest request = (httpservletrequest) req;
    httpservletresponse response = (httpservletresponse) res;
    string method = req.getmethod();
    if (method.equals("get")) {
      doget(request, response);
    }else if (method.equals("post")) {
      dopost(request, response);
    }else if (method.equals("head")) {
      dohead(request, response);
    }
  }
protected void dohead(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception{}
protected void doget(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception{}
protected void dopost(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception {}
}

service方法將請(qǐng)求對(duì)象和響應(yīng)對(duì)象轉(zhuǎn)換成httpservletrequest和httpservletresponse,然后獲取請(qǐng)求方法,根據(jù)請(qǐng)求方法調(diào)用不同的處理方法,例如如果為get方法則調(diào)用doget方法,那么在繼承了httpservlet類的servlet只需重寫doget或dopost方法完成業(yè)務(wù)邏輯處理,這就是我們熟悉的servlet了。

這樣一來,standardwrappervalve閥門調(diào)用servlet的工作其實(shí)就是通過反射機(jī)制實(shí)現(xiàn)對(duì)servlet對(duì)象的控制,例如在不配置load-on-startup情況下,客戶端首次訪問該servlet時(shí)由于還不存在該servlet對(duì)象,需要通過反射機(jī)制實(shí)例化出該servlet對(duì)象,并且調(diào)用初始化方法,所以這也是為什么第一次訪問某個(gè)servlet時(shí)會(huì)比較耗時(shí)的原因,后面客戶端再對(duì)該servlet訪問時(shí)都會(huì)使用該servlet對(duì)象,無需再做實(shí)例化和初始化操作。有了servlet對(duì)象后調(diào)用其service方法即完成了對(duì)客戶端請(qǐng)求的處理。

實(shí)際上通過反射機(jī)制實(shí)例化servlet對(duì)象是一個(gè)比較復(fù)雜的過程,它除了完成實(shí)例化和初始化工作外還要解析該servlet類包含的各種注解并作處理,另外,對(duì)于實(shí)現(xiàn)了singlethreadmodel接口的servlet類,它還要維護(hù)一個(gè)該servlet對(duì)象池。

綜上所述,servlet工作機(jī)制大致流程是:request -> standardenginevalve -> standardhostvalve -> standardcontextvalve -> standardwrappervalve -> 實(shí)例化并初始化servlet對(duì)象 -> 調(diào)用該servlet對(duì)象的service方法 -> response。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/wangyangzhizhou/article/details/52273676

延伸 · 閱讀

精彩推薦
  • Tomcattomcat 6.0.20在一個(gè)機(jī)器上安裝多個(gè)服務(wù)的方法

    tomcat 6.0.20在一個(gè)機(jī)器上安裝多個(gè)服務(wù)的方法

    本文主要為大家介紹tomcat 6.0.20在一個(gè)機(jī)器上安裝多個(gè)服務(wù)的方法,當(dāng)前前提是你已經(jīng)可以同時(shí)運(yùn)行他們了,他們的端口不能相同,這里只是解釋如何把它們...

    Tomcat教程網(wǎng)10052021-08-03
  • Tomcat如何將Tomcat設(shè)置為自動(dòng)啟動(dòng)的服務(wù)最快捷方法

    如何將Tomcat設(shè)置為自動(dòng)啟動(dòng)的服務(wù)最快捷方法

    這篇文章主要介紹了如何將Tomcat設(shè)置為自動(dòng)啟動(dòng)的服務(wù)最快捷方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧...

    鋒齊葉落5352021-09-03
  • TomcatTomcat正常訪問localhost報(bào)404問題解決

    Tomcat正常訪問localhost報(bào)404問題解決

    這篇文章主要介紹了Tomcat正常訪問localhost報(bào)404問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友...

    小明Style5592021-09-23
  • Tomcat淺談Tomcat多層容器的設(shè)計(jì)

    淺談Tomcat多層容器的設(shè)計(jì)

    Tomcat的容器用來裝載Servlet。那Tomcat的Servlet容器是如何設(shè)計(jì)的呢,本文就詳細(xì)的來介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下...

    JavaEdge.9612021-09-26
  • Tomcat如何查看tomcat的控制臺(tái)輸出的方法

    如何查看tomcat的控制臺(tái)輸出的方法

    這篇文章主要介紹了如何查看tomcat的控制臺(tái)輸出的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧...

    CaiCaiNeo11972021-08-29
  • TomcatTomcat目錄結(jié)構(gòu)詳解

    Tomcat目錄結(jié)構(gòu)詳解

    Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的 Web 應(yīng)用服務(wù)器,學(xué)習(xí)tomcat目錄結(jié)構(gòu)十分有必要,今天小編給大家?guī)砹嗽敿?xì)教程,感興趣的朋友一起看看吧...

    ThinkWon6712021-09-09
  • Tomcat學(xué)習(xí)javaweb如何配置Tomcat的熱啟動(dòng)

    學(xué)習(xí)javaweb如何配置Tomcat的熱啟動(dòng)

    學(xué)習(xí)javaweb的時(shí)候每次更改項(xiàng)目都需要重新部署項(xiàng)目,如此一來比較麻煩,使用tomcat的熱啟動(dòng)就可以解決這個(gè)問題...

    whsnow12072021-08-04
  • TomcatTomcat服務(wù)器搭建教程

    Tomcat服務(wù)器搭建教程

    這篇文章主要為大家詳細(xì)介紹了Tomcat服務(wù)器搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下...

    Watom_66310452021-08-20
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精品久久久久久久久久久新郎 | 美女在线一区 | 天天影视网色香欲综合网无拦截 | 欧美爱爱视频 | 免费一级在线观看 | 国产欧美精品一区二区三区 | 日韩电影在线 | 国内精品一区二区 | 夜夜操网| 亚洲国产欧美一区二区三区丁香婷 | 久久99精品久久久久久琪琪 | 久久诱惑| 久久一级淫片 | 久久视频免费 | 亚洲精品日韩综合观看成人91 | 亚洲网站在线观看 | 国产精品成人3p一区二区三区 | 婷婷综合色 | 欧美精品亚洲 | 久久久久久一区 | 久久精品伊人 | 91在线精品一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 超碰国产在线 | 欧美一级片毛片免费观看视频 | 精品久久久久久亚洲精品 | 一区二区视频免费 | 亚洲精品美女 | 成人在线免费观看 | 在线观看一区二区三区四区 | 日本三级韩国三级三级a级中文 | 一级片免费观看 | 日本不卡视频 | 国产亚洲视频在线观看 | 91精品国产一区二区三区四区在线 | 国产综合在线播放 | 婷婷精品久久久久久久久久不卡 | 欧美一级一区 | 黄瓜av| 亚洲天堂一区二区 | 国产黄免费 |