?Tomcat 安裝與使用
:MAC 安裝配置使用Tomcat - 掘金
安裝后本計(jì)算機(jī)就相當(dāng)于一臺(tái)服務(wù)器了!?。?/p>
方式一:使用本地安裝的Tomcat
1、將項(xiàng)目文件移動(dòng)到Tomcat的webapps目錄下。
2、啟動(dòng)Tomcat
3、在瀏覽器輸入想要加載的項(xiàng)目資源URL即可
方式二:使用IDEA中集成的Tomcat
在IDEA內(nèi)配置Tomcat直接搜
寫好業(yè)務(wù)類,在web.xml文件中配置servlet和映射
<servlet>
<servlet-name>bbsServlet</servlet-name>
<servlet-class>com.itheima.servlet01.BbsServlet</servlet-class>
</servlet>
<!-- 映射-->
<!-- 首先是由URL請(qǐng)求得到servletname接著找到servlet-class 就找到了后端業(yè)務(wù)類-->
<servlet-mapping>
<servlet-name>bbsServlet</servlet-name>
<url-pattern>/bbs/findAll</url-pattern>
</servlet-mapping>
一、Tomcat基礎(chǔ)
Tomcat 是一個(gè)免費(fèi)開源輕量級(jí)的 Web 應(yīng)用服務(wù)器。適合在并發(fā)量不是很高的中小企業(yè)項(xiàng)目中使用。
服務(wù)器:安裝了服務(wù)器軟件的計(jì)算機(jī)。
1、文件目錄結(jié)構(gòu)
2、功能組件結(jié)構(gòu)
Tomcat 倆封裝的核心功能:連接器 Connector、容器 Container。連接器和容器構(gòu)成了基本的 web 服務(wù) Service。每個(gè) Tomcat 服務(wù)器可以管理多個(gè) Service。
3、功能組件關(guān)系
一個(gè)container可對(duì)應(yīng)多個(gè)connector。但是僅僅當(dāng)一個(gè)container和一個(gè)connector組合在一起才可以處理一個(gè)service。
4、Coyote與Catalina
Coyote負(fù)責(zé)具體的協(xié)議的解析;Catalina負(fù)責(zé)實(shí)現(xiàn)最終的請(qǐng)求邏輯。
二、Tomcat架構(gòu)
?一、連接器Connector
0、 Tomcat 連接器框架Coyote
Tomcat支持的IO模型:
?Tomcat支持的協(xié)議:
?協(xié)議分層:
1、連接器核心功能
一、監(jiān)聽網(wǎng)絡(luò)端口,接收和響應(yīng)網(wǎng)絡(luò)請(qǐng)求。
二、網(wǎng)絡(luò)字節(jié)流處理。將收到的網(wǎng)絡(luò)字節(jié)流轉(zhuǎn)換成 Tomcat Request 再轉(zhuǎn)成標(biāo)準(zhǔn)的 ServletRequest 給容器,同時(shí)將容器傳來的 ServletResponse 轉(zhuǎn)成 Tomcat Response 再轉(zhuǎn)成網(wǎng)絡(luò)字節(jié)流。
2、連接器模塊設(shè)計(jì)
為滿足連接器的兩核心功能,需要一個(gè)通訊端點(diǎn)來監(jiān)聽端口;需要一個(gè)處理器來處理網(wǎng)絡(luò)字節(jié)流;最后還需要一個(gè)適配器將處理后的結(jié)果轉(zhuǎn)成容器需要的結(jié)構(gòu)。
3、連接器結(jié)構(gòu)圖
?容器支持servletRequest和servletResponse對(duì)象,Processor支持Request和Response,中間依靠Adapter進(jìn)行轉(zhuǎn)化。
二、容器Container
Tomcat 容器框架——Catalina
0、Catalina核心地位
?
1、Catalina架構(gòu)
四個(gè)容器Engine、Host、Context 和 Wrapper之間屬于父子關(guān)系。
?2、Container架構(gòu)
3、源碼分析
三、Tomcat啟動(dòng)流程
0、基本流程
初始化:父組件調(diào)用init方法初始化自身,并初始化子組件
啟動(dòng):父組件調(diào)用start方法啟動(dòng)自身,并啟動(dòng)子組件
?
?四核心任務(wù):
加載Tomcat的配置文件,初始化容器組件,監(jiān)聽對(duì)應(yīng)的端口號(hào),準(zhǔn)備接受客戶端請(qǐng)求。
1、Lifecycle
?在上述啟動(dòng)中 Server、service、Container、executor、connector都調(diào)用了生命周期中的init start方法。
四、請(qǐng)求處理流程
逐字段解析URL首先根據(jù)域名確定虛擬主機(jī)Host,接著根據(jù)context應(yīng)用程序確定,最后根據(jù)字段wrapper確定最終的執(zhí)行方法。
Web應(yīng)用配置
1、ServletContext初始化參數(shù)
ServletContext官方叫servlet上下文。服務(wù)器會(huì)為每一個(gè)工程創(chuàng)建一個(gè)對(duì)象,這個(gè)對(duì)象就是ServletContext對(duì)象。這個(gè)對(duì)象全局唯一,而且工程內(nèi)部的所有servlet都共享這個(gè)對(duì)象。所以叫全局應(yīng)用程序共享對(duì)象。
?使用<context-parm>添加ServletContext初始化參數(shù)(鍵值對(duì))
<context-param>
<param-name>project01_parm</param-name>
<param-value>itcast</param-value>
</context-param>
使用getServletContext().getInitParameter()獲取初始化參數(shù)(傳參為param-name)文章來源:http://www.zghlxwxcb.cn/news/detail-691252.html
String value = request.getServletContext().getInitParameter("project01_param");
2、文章來源地址http://www.zghlxwxcb.cn/news/detail-691252.html
到了這里,關(guān)于Web服務(wù)器-Tomcat詳細(xì)原理與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!