日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Tomcat-配置及原理

系統(tǒng) 2169 0

Tomcat安裝好后打開目錄;可以看到如下結(jié)構(gòu):

bin :存放服務(wù)器腳本;

conf :存放配置文件;

lib :存放需要的JAR文件;

wabapps :存放需要發(fā)布的Web應(yīng)用程序及其部署文件;

work :存放jsp 文件編繹生成的class文件;

logs :存放日志文件;

在conf目錄下可以看到 Catalina 目錄,context.xml, web.xml, server.xml 等(一些不是很重要的就不列出來了)。

server.xml 被稱為Tomcat的主配置文件或全局配置文件,它完成兩個(gè)任務(wù):
1)提供Tomcat組件的初始配置
2)說明Tomcat的結(jié)構(gòu),含義, 使Tomcat通過實(shí)例化組件完成啟動(dòng)及構(gòu)建自身。

server.xml中描述的重要元素有? Server ?, Service ?, Connector ?, Engine ?, Host ?, Context ?.
結(jié)構(gòu)如下:
Tomcat-配置及原理
它們的用處是:

Server :
頂層元素
, 整個(gè)配置文件的根元素 , 表示整個(gè) Servlet 容器或者 Tomcat 服務(wù)器 包含多個(gè) Listener, 一個(gè) GlobalNamingResources 和一個(gè) Service

Service :
一組 Connector 和一個(gè) Engine 的集合,這組 Connector 共用一個(gè) Engine 來處理所有 Connector 收到的請(qǐng)求,負(fù)責(zé)處理 <Connector> 所獲得到的客戶請(qǐng)求

Listener組 : ?
監(jiān)聽器,用來管理
Tomcat 生命周期和全局資源

GlobalNamingResources :
配置系統(tǒng)的 JNDI Java Naming and Directory Interface

Connector組 :
連接器,代表外部客戶之間的接口,將在一個(gè)指定的接口上偵聽客戶請(qǐng)求,并將獲得的請(qǐng)求交給 <Engine> 進(jìn)行處理,然后把處理結(jié)果返回給客戶

Engine : ?
引擎,處理
<Service> 中的所有客戶請(qǐng)求,具體來說,獲得一個(gè) <Connectors> 交給的請(qǐng)求后,把這個(gè)請(qǐng)求匹配到某個(gè) <Host> 上進(jìn)行處理,如果沒有找到合適的 <Host> 來進(jìn)行處理,則把這個(gè)請(qǐng)求交給一個(gè)默認(rèn)虛擬主機(jī)處理。

Host組 :
虛擬主機(jī),處理一個(gè)特定主機(jī)的請(qǐng)求,一般來說,每個(gè)虛擬主機(jī)都可以配置一個(gè)到多個(gè) Web 應(yīng)用,每個(gè) Web 應(yīng)用對(duì)應(yīng)一個(gè) <Context>,<Host> 獲得的請(qǐng)求最終匹配到某個(gè) <Context> 上,由它進(jìn)行處理。

Context組 : ?
Web
應(yīng)用組,每個(gè) Web 應(yīng)用由一個(gè)或多個(gè) Servlet 組成,當(dāng) <Context> 獲得一個(gè)請(qǐng)求后,將映射 /conf/web.xml 文件中的 <servlet> 元素,匹配一個(gè) Servlet 類進(jìn)行處理并返回。當(dāng)一個(gè) Web 應(yīng)用被初始化的時(shí)候,它將用自己的 ClassLoader 對(duì)象載入 web.xml 中定義的每個(gè) Servlet 類。

我們啟動(dòng)Tomcat,在瀏覽器中輸入:http://localhost:8080/ 會(huì)打開Tomcat的默認(rèn)頁面。實(shí)際上,這個(gè)頁面是在Tomcat安裝目錄下的:/webapps/root/index.jsp;/webapps是Tomcat服務(wù)器用來存放Web應(yīng)用的目錄,每個(gè)Web應(yīng)用都將在這建立各自的子目錄,剛裝好的Tomcat服務(wù)器虛擬主機(jī)的默認(rèn)目錄是/webapps/ROOT,所以默認(rèn)會(huì)打開這個(gè)目錄下的文件。流程如下:
在/conf目錄下的web.xml配置文件中有如下配置:
<welcome-file-list>
? ? ? ? ? ? ? ?<welcome-file>index.html</welcome-file>
? ? ? ? ? ? ? ?<welcome-file>index.htm</welcome-file>
? ? ? ? ? ? ? ?<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
這里正是用來配置首頁的,Tomcat將按順序找出<welcome-file>標(biāo)簽中的內(nèi)容作為首頁。而在我們的目錄下,它只找到了index.jsp,所以會(huì)顯示它;
但我們不能將所有的Web程序都放在ROOT里。所以我們需要更改Tomcat的虛擬目錄;

設(shè)置虛擬路徑 ,需要在server.xml文件的<Host></Host>中的Web應(yīng)用添加一個(gè)<Context>子元素,實(shí)際上是配置了一個(gè)Web應(yīng)用的物理存放地址到Tomcat虛擬路徑的過程,使得Tomcat能夠正確找到Web應(yīng)用的物理存放路徑;
步驟:
1)在server.xml的<Host></Host>中加上如下代碼:
<Context docBase="D:/myApp" path="/myapp" reloadable="true"></Context>
2)我們把寫好的Web應(yīng)用中的所有文件放到下面的目錄中:D:/myapp/test
3)重啟Tomcat,在瀏覽器中輸入:http://localhost:8080/test 即可測試

web.xml
Tomcat目錄下/conf 可為不同的應(yīng)用程序配置不同的上下文環(huán)境;用來對(duì)Servlet進(jìn)行映射;
一個(gè)Web應(yīng)用的根目錄下的/WEB-INF目錄中也有一個(gè)web.xml,當(dāng)部署一個(gè)Web應(yīng)用時(shí),總是先加載/conf/web.xml,然后才加載自己Web應(yīng)用的/WEB-INF/web.xml文件;但處理過程中,總是先使用自己的web.xml配置文件,如果無法處理,才把它交給Tomcat的web.xml文件。

當(dāng)用戶在瀏覽器中輸入一個(gè)JSP文件地址:
http://localhost:8080/test/index.jsp
提交的請(qǐng)求最終由一個(gè)具體的Servlet來進(jìn)行處理。我們請(qǐng)求傳遞的過程如下:
1)請(qǐng)求首先到達(dá)商品為8080的<Connector>,然后把該請(qǐng)求交給<Engine>引擎處理;
2)<Engine>將這個(gè)請(qǐng)求匹配到某個(gè)<Host>去處理,因?yàn)檫@里<Engine>默認(rèn)處理的<Host>是localhost,所以請(qǐng)求傳遞到name屬性是localhost的<Host>。
3)<Host>根據(jù)地址串中的子目錄為"test",獲知能夠處理該請(qǐng)求的Servlet存放在虛擬目錄為"test"的Web應(yīng)用中,于是通過查找<Context>元素,找到path="test" 的<Content>,然后根據(jù)<Content>中的物理路徑"docBase"的屬性值查找Web應(yīng)用的物理地址;
4)服務(wù)器根據(jù)對(duì)應(yīng)的Web應(yīng)用的“WEB_INF/web.xml”配置文件,查找能夠處理index.jsp的servlet;


如上圖所示:
connector負(fù)責(zé)接收客戶請(qǐng)求,并向客戶返回響應(yīng)結(jié)果.在同一個(gè)service中,多個(gè)connector共享同一個(gè)Engine,同一個(gè)Engine可以有多個(gè)Host,一個(gè)Host可以有多個(gè)context;一個(gè)context對(duì)應(yīng)一個(gè)web項(xiàng)目.在運(yùn)行時(shí),一個(gè)Tomcat會(huì)給每個(gè)context生成一個(gè)ServletContext類的實(shí)例.

Tomcat-配置及原理


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 万山特区| 永福县| 翼城县| 金坛市| 图木舒克市| 文登市| 澄江县| 星子县| 高邑县| 宜宾县| 墨竹工卡县| 鹰潭市| 德阳市| 顺义区| 苏尼特左旗| 阿巴嘎旗| 昌宁县| 阜宁县| 安西县| 繁昌县| 乐至县| 金昌市| 桐乡市| 咸阳市| 兴业县| 拜城县| 调兵山市| 西乡县| 专栏| 宁河县| 罗源县| 全州县| 瑞丽市| 布拖县| 遂平县| 泰州市| 博罗县| 塔河县| 油尖旺区| 仲巴县| 仁化县|