日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Tomcat架構(gòu)設(shè)計及Servlet作用規(guī)范講解

瀏覽:399日期:2023-03-19 16:51:53
目錄
  • 1.Servlet規(guī)范
    • 1.1 Servlet作用講解
    • 1.2 Servlet核心API
    • 1.3 ServletRequest
    • 1.4 ServletResponse
  • 2.Tomcat的設(shè)計
    • 2.1 什么是Tomcat
    • 2.2 Tomcat的架構(gòu)結(jié)構(gòu)
    • 2.3 組件分類

1.Servlet規(guī)范

1.1 Servlet作用講解

Servlet是JavaEE規(guī)范中的一種,主要是為了擴展Java作為Web服務(wù)的功能,統(tǒng)一定義了對應(yīng)的接口,比如Servlet接口,HttpRequest接口,HttpResponse接口,F(xiàn)ilter接口。

然后由具體的服務(wù)廠商來實現(xiàn)這些接口功能,比如Tomcat,jetty等。

在規(guī)范里面并不會有具體的實現(xiàn)。

可以自行看下源碼,而在Servlet規(guī)范中規(guī)定了一個http請求到來的執(zhí)行處理流程:

對應(yīng)的服務(wù)器容器會接收到對應(yīng)的Http請求,然后解析該請求,然后創(chuàng)建對應(yīng)的Servlet實例,調(diào)用對應(yīng)init方法來完成初始化,把請求的相關(guān)信息封裝為HttpServletRequest對象來調(diào)用Servlet的service方法來處理請求,然后通過HttpServletResponse封裝響應(yīng)的信息交給容器,響應(yīng)給客戶端。

1.2 Servlet核心API

我們再來回顧下Servlet中的核心API,這塊對我們更好的掌握Tomcat的內(nèi)容還是非常有幫助的。

API描述ServletConfig獲取servlet初始化參數(shù)和servletContext對象。ServletContext在整個Web應(yīng)用的動態(tài)資源之間共享數(shù)據(jù)。ServletRequest封裝Http請求信息,在請求時創(chuàng)建。ServletResponse封裝Http響應(yīng)信息,在請求時創(chuàng)建。

ServletConfig

容器在初始化servlet時,為該servlet創(chuàng)建一個servletConfig對象,并將這個對象通過init()方法來傳遞并保存在此Servlet對象中。核心作用:

  • 獲取初始化信息;
  • 獲取ServletContext對象。

ServletContext

一個項目只有一個ServletContext對象,可以在多個Servlet中來獲取這個對象,使用它可以給多個Servlet傳遞數(shù)據(jù),該對象在Tomcat啟動時就創(chuàng)建,在Tomcat關(guān)閉時才會銷毀!作用是在整個Web應(yīng)用的動態(tài)資源之間共享數(shù)據(jù)。

在實際的Servlet開發(fā)中,我們會實現(xiàn)HttpServlet接口,在該接口中會實現(xiàn)GenericServlet,而在GenericServlet會實現(xiàn)ServiceConfig接口,從而可以獲取ServletContext容器對象

所以在Servlet中我們可以很容易的獲取到ServletContext對象,從而完成對應(yīng)的操作。

public class ServletTwoImpl extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");// 1、參數(shù)傳遞ServletContext servletContext = this.getServletContext() ;String value = String.valueOf(servletContext.getAttribute("name")) ;System.out.println("value="+value);// 2、獲取初始化參數(shù)String userName= servletContext.getInitParameter("user-name") ;System.out.println("userName="+userName);// 3、獲取應(yīng)用信息String servletContextName = servletContext.getServletContextName() ;System.out.println("servletContextName="+servletContextName);// 4、獲取路徑String pathOne = servletContext.getRealPath("/") ;String pathTwo = servletContext.getRealPath("/WEB-INF/") ;System.out.println("pathOne="+pathOne+";pathTwo="+pathTwo);response.getWriter().print("執(zhí)行:doGet; value:"+value);    }}

1.3 ServletRequest

HttpServletRequest接口繼承ServletRequest接口,用于封裝請求信息,該對象在用戶每次請求servlet時創(chuàng)建并傳入servlet的service()方法,在該方法中,傳入的servletRequest將會被強制轉(zhuǎn)化為HttpservletRequest 對象來進行HTTP請求信息的處理。核心作用:

  • 獲取請求報文信息;
  • 獲取網(wǎng)絡(luò)連接信息;
  • 獲取請求域?qū)傩孕畔ⅰ?/li>

1.4 ServletResponse

HttpServletResponse繼承自ServletResponse,封裝了Http響應(yīng)信息。客戶端每個請求,服務(wù)器都會創(chuàng)建一個response對象,并傳入給Servlet.service()方法。核心作用:

  • 設(shè)置響應(yīng)頭信息;
  • 發(fā)送狀態(tài)碼;
  • 設(shè)置響應(yīng)正文;
  • 重定向;

2.Tomcat的設(shè)計

通過上面Servlet規(guī)范的介紹,其實我們發(fā)下我們要實現(xiàn)Servlet規(guī)范的話,很重要的就得提供一個服務(wù)容器來獲取請求,解析封裝數(shù)據(jù),并調(diào)用Servlet實例相關(guān)的方法。也就是如下圖中的部分

這塊的內(nèi)容其實就是Tomcat,具體的我們來看看。

2.1 什么是Tomcat

Tomcat是一個容器,用于承載Servlet,那么我們說Tomcat就是一個實現(xiàn)了部分J2EE規(guī)范的服務(wù)器。J2 EE和Jakarta EE(Eclipse基金會)這兩是啥?用于Tomcat10以后都是Jakarta EE,而9之前就是J2EE.

2.2 Tomcat的架構(gòu)結(jié)構(gòu)

我們通過上面的分析,知道Tomcat是一個Servlet規(guī)范的實現(xiàn),要接收請求和響應(yīng)請求,那么具體是如何實現(xiàn)的呢?這塊我們可以通過conf下的server.xml得出對應(yīng)的結(jié)論。

server.xml是Tomcat中最重要的配置文件,server.xml 的每一個元素都對應(yīng)了Tomcat 中的一個組件 ;通過對xml文件中元素的配置,可以實現(xiàn)對Tomcat中各個組件的控制。因此,學(xué)習(xí)server.xml文件的配置,對于了解和使用Tomcat至關(guān)重要.

<?xml version="1.0" encoding="UTF-8"?><Server port="8005" shutdown="SHUTDOWN">  <Service name="Catalina">    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"maxThreads="150" minSpareThreads="4"/>    <Connector port="8080" protocol="HTTP/1.1"       connectionTimeout="20000"       redirectPort="8443" />    <Connector executor="tomcatThreadPool"       port="8080" protocol="HTTP/1.1"       connectionTimeout="20000"       redirectPort="8443" />    <Engine name="Catalina" defaultHost="localhost">      <Realm className="org.apache.catalina.realm.LockOutRealm"><!-- This Realm uses the UserDatabase configured in the global JNDI     resources under the key "UserDatabase".  Any edits     that are performed against this UserDatabase are immediately     available for use by the Realm.  --><Realm className="org.apache.catalina.realm.UserDatabaseRealm"       resourceName="UserDatabase"/>      </Realm>      <Host name="localhost"  appBase="webapps"    unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"       prefix="localhost_access_log" suffix=".txt"       pattern="%h %l %u %t "%r" %s %b" />      </Host>    </Engine>  </Service></Server>

極簡模式

<Server>    <Service><Connector /><Connector /><Engine>    <Host><Context /><!-- 現(xiàn)在常常使用自動部署,不推薦配置Context元素,Context小節(jié)有詳細說明 -->    </Host></Engine>    </Service></Server>

梳理出的結(jié)構(gòu)

對應(yīng)的每個組件的作用。

2.3 組件分類

官網(wǎng)其實對上面的組件也做了分類:

頂級元素:

  • Server:是整個配置文件的根元素
  • Service:代表一個Engine元素以及一組與之相連的Connector元素

連接器

  • 代表了外部客戶端發(fā)送請求到特定Service的接口;同時也是外部客戶端從特定Service接收響應(yīng)的接口。

容器

容器的作用是處理Connector接收進來的請求,并產(chǎn)生對應(yīng)的響應(yīng),Engine,Host和Context都是容器,他們不是平行關(guān)系,而是父子關(guān)系。

每個組件的作用:

  • Engine:可以處理所有請求
  • Host:可以處理發(fā)向一個特定虛擬主機的所有請求
  • Context:可以處理一個特定Web應(yīng)用的所有請求

核心組件的串聯(lián)關(guān)系

當(dāng)客戶端請求發(fā)送過來后其實是通過這些組件相互之間配合完成了對應(yīng)的操作。

  • Server元素在最頂層,代表整個Tomcat容器;一個Server元素中可以有一個或多個Service元素
  • Service在Connector和Engine外面包了一層,把它們組裝在一起,對外提供服務(wù)。一個Service可以包含多個Connector,但是只能包含一個Engine;Connector接收請求,Engine處理請求。
  • Engine、Host和Context都是容器,且Engine包含Host,Host包含Context。每個Host組件代表Engine中的一個虛擬主機;每個Context組件代表在特定Host上運行的一個Web應(yīng)用.

整體Tomcat的運行架構(gòu)圖

以上就是Tomcat架構(gòu)設(shè)計及Servlet作用規(guī)范講解的詳細內(nèi)容,更多關(guān)于Tomcat架構(gòu)設(shè)計Servlet規(guī)范的資料請關(guān)注其它相關(guān)文章!

標簽: Tomcat
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产在线观看www| 国产伦理一区| 视频一区日韩| 91精品啪在线观看国产18| 欧美日韩亚洲一区三区| 欧美日韩一区二区综合| 日韩av网站在线观看| 亚洲调教视频在线观看| 国产一区二区三区天码| 国产精品久久久久久久免费软件| 美国三级日本三级久久99| 少妇久久久久| 久久精品一本| 偷拍亚洲精品| aa亚洲婷婷| 中日韩男男gay无套| 欧美日韩国产观看视频| 九九九精品视频| 国产一区2区| 最近高清中文在线字幕在线观看1| 久久久久九九精品影院| 国产精品对白久久久久粗| 国产伦精品一区二区三区千人斩 | 蜜臀精品一区二区三区在线观看| 国产精品av久久久久久麻豆网| 欧美日一区二区| 亚洲一级黄色| 亚洲一区二区三区免费在线观看| 日韩av二区| 国产超碰精品| 在线天堂中文资源最新版| 久久精品五月| 特黄特色欧美大片| 三级在线观看一区二区 | 免费在线观看视频一区| 一区二区三区国产盗摄| 亚洲精品第一| 亚洲区欧美区| 另类欧美日韩国产在线| 久久美女性网| 综合激情网...| 国产精品亚洲二区| 国产精品nxnn| 老司机免费视频一区二区三区| 久久精品日韩欧美| 99在线观看免费视频精品观看| 亚洲精品裸体| 粉嫩av一区二区三区四区五区 | 日韩欧美一区二区三区免费看| 亚洲第一区色| 亚洲精品在线a| 日韩av一区二区在线影视| 久久国产麻豆精品| 久久天堂av| 国产日韩欧美一区二区三区| 久久精品高清| 久久伊人久久| 综合干狼人综合首页| 精品国产黄a∨片高清在线| 宅男在线一区| 欧美一级久久| 亚洲二区免费| 国产aⅴ精品一区二区四区| 日韩一区精品| 国产精品88久久久久久| 日韩二区在线观看| 成人羞羞视频播放网站| 国产乱子精品一区二区在线观看| 在线综合亚洲| 欧美三区四区| 久久免费影院| 久热精品在线| 好看的av在线不卡观看| 成人三级高清视频在线看| 国产精品一页| 欧美影院视频| 日本强好片久久久久久aaa| 亚洲制服一区| 亚洲激情欧美| 亚洲专区欧美专区| 好看的亚洲午夜视频在线| 国产精品久久久久蜜臀| 精品资源在线| 欧美日韩一区二区国产| 日本午夜精品久久久| 日韩欧美中文字幕在线视频| 综合国产精品| 天堂久久一区| 日韩高清不卡一区| 欧美国产中文高清| 国产在线不卡一区二区三区 | 欧美日韩在线网站| 免费不卡中文字幕在线| 久久精品卡一| 久久久精品日韩| 九一国产精品| 亚洲毛片在线| 国产精品色婷婷在线观看| 久久爱www.| 伊人网在线播放| 日韩超碰人人爽人人做人人添| 国产日韩一区| 日韩在线短视频| 黄色成人91| 国产黄色精品| 伊人影院久久| 91精品日本| 国产精品伦理久久久久久| 国户精品久久久久久久久久久不卡| 中文字幕一区久| 99re国产精品| 国产精品成人国产| 亚洲精品极品少妇16p| 日韩专区视频网站| 水蜜桃久久夜色精品一区| 亚洲欧美日韩高清在线| 国产精品av一区二区| 91成人在线网站| 国产v综合v| 日本国产欧美| 国产精品中文字幕亚洲欧美| 国产欧美亚洲精品a| 日韩一区三区| 日本a级不卡| 国产精品115| 欧美综合国产| 日韩在线精品| 国产精品一线| 欧美日韩在线网站| 久久中文字幕一区二区| 在线看片一区| 久久亚洲精品中文字幕蜜潮电影| 国产午夜精品一区二区三区欧美| 国产欧美一区二区三区国产幕精品| 欧美69视频| 国产精品黑丝在线播放| 91精品在线免费视频| 亚洲专区在线| 免费久久精品| 卡一卡二国产精品| 日本国产欧美| 三级欧美在线一区| 国产亚洲午夜| av不卡免费看| 黑丝一区二区三区| 欧美日韩在线观看视频小说| 成人国产精品久久| 久久精品国产亚洲一区二区三区| 日韩精品福利一区二区三区| 蜜桃久久精品一区二区| 男女男精品网站| 视频一区在线播放| 中文欧美日韩| 婷婷精品在线| 亚洲乱码久久| 久草免费在线视频| 中文字幕系列一区| 模特精品在线| 国产另类在线| 国产主播一区| 青青草精品视频| 激情91久久| 蜜臀精品一区二区三区在线观看| 成人精品国产亚洲| 91精品国产一区二区在线观看| 1024精品一区二区三区| 久久的色偷偷| 日韩精品一区二区三区免费视频 | 国产高潮在线| 国产欧美三级| 麻豆精品蜜桃| 日本aⅴ免费视频一区二区三区| 亚洲综合中文| 日本不卡高清| 丝袜美腿亚洲一区| 黄色欧美日韩| 午夜精品网站| 亚洲涩涩av| 亚洲区欧美区| 亚洲一区二区三区无吗| 蜜芽一区二区三区| 免费久久99精品国产| 久久国产精品99国产| 国产第一亚洲| 国产传媒av在线| 一区二区三区视频免费观看| 日韩精品一卡二卡三卡四卡无卡| 日本在线不卡视频| 久久精品99国产精品| 久久国产精品美女| 999久久久91| 婷婷综合社区| 视频一区免费在线观看| 麻豆久久精品| 日本亚州欧洲精品不卡| 欧美日韩18| 国产一区精品福利| 欧美中文字幕一区二区| 最新亚洲激情| 91欧美极品|