每個Web應用模塊的WEB-INF目錄下都有一個web.xml的設定文件,它提供了Web應用項目的配置設定。java
1. 定義頭和根元素web
部署描述符文件就像全部的XML文件同樣,必須以一個XML頭開始。安全
這個XML頭生命了可使用的XML版本並給出文件的字符編碼,DOCTYPE聲明必須當即出如今此頭以後。這個聲明告訴服務器適用的Servlet規範的版本並指定管理此文件其他部份內容的語法的DTD(Document Type Definition文檔類型定義)。服務器
全部的部署描述符文件的頂層(根)元素爲web-app。session
XML元素不像HTML,它們是大小寫敏感的。app
2. 部署描述符文件內的元素次序工具
XML文件不只是大小寫敏感的,並且還對出如今其餘元素中的次序敏感。編碼
在web-app內,元素的次序也很重要,服務器不必定強制要求這種次序,但它們容許徹底拒絕執行含有次序不正確的元素的web應用。這表示使用非標準元素次序的web.xml文件時不可移植的。spa
下表給出了全部可直接出如今web-app元素內的合法元素所必須的次序,元素是可選的(能夠省略),可是不能放在不正確的位置。xml
元素 |
描述 |
icon | 指出IDE和GUI工具用來表示Web應用的一個和兩個圖像文件的位置 |
display-name | 提供GUI工具可能會用來標記這個特定的Web應用的一個名稱 |
description | 給出與此有關的說明性文本 |
context-param | 聲明應用範圍內的初始化參數 |
filter | 將一個過濾器名字與一個實現javax.servlet.Filter接口的類相關聯 |
filter-mapping | 一旦命名了一個過濾器,就要用filter-mapping把它與一個或多個Servlet/Jsp頁面相關聯 |
listener | Servlet2.3增長監聽器支持。事件監聽程序在創建/修改和刪除會話或Servlet環境時觸發,Listener元素指出事件監聽程序類 |
servlet | 在向Servlet或JSP頁面制定初始化參數或URL時,必須首先命名Servlet或JSP頁面,Servlet元素就是用來完成此項任務的 |
servlet-mapping | 通常爲servlet提供一個URL,以便Servlet能夠訪問初始化參數或更容易處理相對URL |
session-config | 可用子元素<session-timeout>設置會話超時值,或經過HttpSession的setMaxInactiveInterval設置 |
mime-mapping | 若是Web應用具備特殊的文件,但願能保證分配特定的MIME類型,則該元素可提供這種保證 |
welcom-file-list | 指示服務器在收到引用一個目錄名而不是文件名的URL時,使用哪一個文件響應 |
error-page | error-page使得在返回特定HTTP狀態代碼時,或者特定類型的異常被拋出時,可以制定將要顯示的頁面 |
taglib | 對標記庫描述符文件(Tag Library Descriptor file)指定別名,此功能可以更改TLD文件的位置,而不用編輯使用這些文件的JSP頁面 |
resource-env-ref | 聲明與資源相關的一個管理對象 |
resource-ref | 聲明一個資源工廠使用的外部資源 |
security-constraint | 指定應該保護的URL,與login-config元素聯合使用 |
login-config | 用login-config元素來指定服務器應該怎樣給試圖訪問受保護頁面的用戶受權,它與security-constraint元素聯合使用 |
security-role | 給出安全角色的列表,這些角色將出如今servlet元素內的security-role-ref元素的role-name子元素中,分別聲明角色可以使高級IDE處理安全信息更爲容易 |
env-entry | 聲明Web應用的環境項 |
ejb-ref | 聲明一個EJB主目錄的引用 |
ejb-local-ref | 聲明一個EJB的本地主目錄的應用 |
初始化參數、定製的URL模式以及其餘定製經過servlet-name及相似的註冊名,而不是類名來引用servlet。可在URL而不是類名中使用此名稱。