【Servlet】Tomcat公共 / 项目独立的 web.xml / server.xml 文件讲解
課程介紹
每個web 項目下都具備web.xml 文件。通過前面的學習,我們對web.xml 文件有了一定了解,但是還不夠,本節課就web.xml 文件進行總結。同時對Tomcat 下的server.xml 進行介紹。
Web.xml 文件使用總結
作用:
存儲項目相關的配置信息,保護Servlet(不直接把類名暴露給用戶)。解耦一些數據對程序的依賴。
使用位置:
(1)每個Web 項目中
(2)Tomcat 服務器中(在服務器目錄conf 目錄中)
區別:
Web 項目下的web.xml 文件為局部配置,針對本項目的位置。
Tomcat 下的web.xml 文件為全局配置,配置公共信息。
- 對于同一個xml元素,如果以上兩個配置同時存在,優先使用Web項目下的配置。
web.xml的內容(核心組件):
(1)全局上下文配置(全局配置參數)content-param
(2)Servlet 配置ServletContext
(3)過濾器配置 filter
(4)監聽器配置 listener
以上四個配置位置沒有順序,但加載有順序:
Web 容器會按ServletContext -> context-param -> listener ->filter -> servlet 這個順序加載組件,這些元素可配置在web.xml文件中的任意位置。
加載時機:
無論是項目內的web.xml還是tomcat里的web.xml,都是在服務器啟動時,加載web.xml
server.xml 文件
- 可以在里面修改端口號
問題:
瀏覽器發起請求后,服務器根據請求在webapps 目下調用對應的Servlet 進行請求處理。那么為什么是webapps 目錄難道不能是其他的目錄嗎?
解決:
了解server.xml 文件的配置信息
Server.xml 文件核心組件:
<Server><Service><Connector /> <!-- 配置服務器使用的端口號、服務器使用的協議、發送請求的連接時間限制、重定向端口號(如果8080端口有問題,會重定向到8443) --><Connector /> <!-- 8009端口號使用的AJP協議主要用于服務器集群,是好幾個服務器聯動進行操作 --><Engine> <!-- 一個Service下面只能有一個Engine,里面的appbase配置了默認的項目目錄:webapps。Tomcat啟動后,service里面的數據監聽8080端口(底層代碼實現),用戶瀏覽器請求被tomcat服務器拿到,然后根據URI找到項目去匹配。 --><Host><Context /></Host></Engine></Service> </Server>熱部署:
冷部署:是每次對項目進行了內容修改之后,都需要重啟服務器才能看到效果。
熱部署:可以設置部署目錄,不需要把項目放在webapps下。
<Context path ="/Pet" reloadable ="true" docBase ="F:/PetWeb" />path寫的是項目的虛擬名稱
reloadable ="true"表示項目被修改之后自動加載。
docBase配置的路徑要精確到webroot路徑。
如果項目刪了,熱部署的路徑沒刪,啟動服務器的過程會報錯,Tomcat啟動失敗。
總結
以上是生活随笔為你收集整理的【Servlet】Tomcat公共 / 项目独立的 web.xml / server.xml 文件讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Servlet】ServletCont
- 下一篇: 【Log4j日志输出】控制台输出、输出到