更新時間:2020-11-30 17:46:42 來源:動力節點 瀏覽2280次
web.xml是Tomcat工程中最重要的配置文件,當啟動一個Web項目時,容器包括(JBoss、Tomcat等)首先會讀取項目web.xml配置文件里的配置,當這一步驟沒有出錯并且完成之后,項目才能正常地被啟動起來。那么如此重要的Web.xml文件配置到底是怎樣的呢?本文就來為大家揭曉答案,Web.xml文件配置共分為14步,下面我們一起學習。
1、定義頭和根元素
部署描述符文件就像所有XML文件一樣,必須以一個XML頭開始。這個頭聲明可以使用的XML版本并給出文件的字符編碼。
所有部署描述符文件的頂層(根)元素為web-app。請注意,XML元素不像HTML,他們是大小寫敏感的。因此,web-App和WEB-APP都是不合法的,web-app必須用小寫。
2、 部署描述符文件內的元素次序
XML 元素不僅是大小寫敏感的,而且它們還對出現在其他元素中的次序敏感。例如,XML頭必須是文件中的第一項,DOCTYPE聲明必須是第二項,而web- app元素必須是第三項。在web-app元素內,元素的次序也很重要。服務器不一定強制要求這種次序,但它們允許(實際上有些服務器就是這樣做的)完全拒絕執行含有次序不正確的元素的Web應用。這表示使用非標準元素次序的web.xml文件是不可移植的。
3 、分配名稱和定制的UL
在web.xml中完成的一個最常見的任務是對servlet或JSP頁面給出名稱和定制的URL。用servlet元素分配名稱,使用servlet-mapping元素將定制的URL與剛分配的名稱相關聯。
4 、禁止激活器servlet
對servlet或JSP頁面建立定制URL可以注冊從 init(servlet)或jspInit(JSP頁面)方法中讀取得初始化參數。但是初始化參數只在是利用定制URL模式或注冊名訪問servlet或JSP頁面時可以使用,用缺省URL http://host/webAppPrefix/servlet/ServletName 訪問時不能使用。因此,你可能想關閉缺省URL,這樣就不會有人意外地調用初始化servlet了。這個過程稱為禁止激活器servlet,因為多數服務器具有一個用缺省的servlet URL注冊的標準servlet,并激活缺省的URL應用的實際servlet。
5 、初始化和預裝載servlet與JSP頁面
這里討論控制servlet和JSP頁面的啟動行為的方法。特別是,說明了怎樣分配初始化參數以及怎樣更改服務器生存期中裝載servlet和JSP頁面的時刻。
6、 聲明過濾器
servlet版本2.3引入了過濾器的概念。過濾器可截取和修改進入一個servlet或JSP頁面的請求或從一個servlet或JSP頁面發出的相應。在執行一個servlet或JSP頁面之前,必須執行第一個相關的過濾器的doFilter方法。在該過濾器對其FilterChain對象調用doFilter時,執行鏈中的下一個過濾器。如果沒有其他過濾器,servlet或JSP頁面被執行。
7 、指定歡迎頁
假如用戶提供了一個像http: //host/webAppPrefix/directoryName/ 這樣的包含一個目錄名但沒有包含文件名的URL,很難預測用戶能得到什么,一個目錄表?一個錯誤?還是標準文件的內容?如果得到標準文件內容,是 index.html、index.jsp、default.html、default.htm或別的什么東西呢?
Welcome-file-list元素及其輔助的welcome-file元素解決了這個模糊的問題。
8 、指定處理錯誤的頁面
人畢竟不是機器,總有犯錯的時候,用戶可能會提供不合規定的參數,使用不正確的URL或者不能提供必需的表單字段值。這時候就需要指定處理錯誤的頁面。
9 、控制會話超時
如果某個會話在一定的時間內未被訪問,服務器可把它扔掉以節約內存。可利用HttpSession的setMaxInactiveInterval方法直接設置個別會話對象的超時值。如果不采用這種方法,則缺省的超時值由具體的服務器決定。但可利用session-config和session- timeout元素來給出一個適用于所有服務器的明確的超時值。
10 、定位TLD
JSP taglib元素具有一個必要的uri屬性,它給出一個TLD(Tag Library Descriptor)文件相對于Web應用的根的位置。TLD文件的實際名稱在發布新的標簽庫版本時可能會改變,但我們希望避免更改所有現有JSP頁面。此外,可能還希望使用保持taglib元素的簡練性的一個簡短的uri。這就是部署描述符文件的taglib元素派用場的所在了。
11、 Web應用的文檔化
越來越多的開發環境開始提供servlet和JSP的直接支持。例子有Borland Jbuilder Enterprise Edition、Macromedia UltraDev、Allaire JRun Studio以及IBM VisuaAge for Java等。
12 、關聯文件與MIME類型
服務器一般都具有一種讓Web站點管理員將文件擴展名與媒體相關聯的方法。例如,將會自動給予名為mom.jpg的文件一個image/jpeg的MIME 類型。但是,假如你的Web應用具有幾個不尋常的文件,你希望保證它們在發送到客戶機時分配為某種MIME類型。mime-mapping元素(具有 extension和mime-type子元素)可提供這種保證。
13、 指定應用事件監聽程序
應用事件監聽器程序是建立或修改servlet環境或會話對象時通知的類。它們是servlet規范的版本2.3中的新內容。
14 、J2EE元素
J2EE元素中比較典型的就是用作J2EE環境組成部分的Web應用的web.xml元素。
實際上,一個web中可以沒有web.xml文件,也就是說,web.xml文件并不是web工程必須的。但前提是,你的工程不會涉及到過濾器、監聽器等許多重要的功能,因此,絕大多數的web工程都是包含有web.xml文件的,掌握Web.xml文件配置也是十分必要的。你也可以觀看本站的XML教程,下載更多的XML文件源碼加深你的理解。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習