web.xml

web.xml

web.xml 是網路程式中的一個很重要的配置檔案。

基本介紹

  • 中文名:XML檔案
  • 外文名:xml
  • 類型:配置檔案
  • 範疇:網路程式
概述,XML相關標準,主要技術特點,文檔類型定義,詳細分析,

概述

在當前的網路資訊時代,信息量不僅龐大而且源自於不同的數據源,信息集成一直是研究的熱點。基於多代理(Multi-Agent)的信息資源集成方案有所不足,而XML集成機制的優點,適於網路環境下基於XML的信息集成。本方案:包括系統的總體框圖、層次結構、工作過程及信息系統主要部分的具體設計。
隨著計算機技術,特別是Internet的不斷發展,實現"信息孤島"之間的集成與互動成為亟待解決的問題。
在諸多解決方案中,基於多代理(Multi-Agent)的信息集成就是其中的一種。該系統已被認為是建造大型複雜分散式信息處理系統的重要技術和框架。在基於多代理的方法中,資源集成的具體操作步驟是:用戶把請求提交給搜尋代理,由搜尋代理對請求進行適當的轉換,傳送給代理路由器;代理路由器通過連結,將查詢請求傳送給資料庫代理;資料庫代理接受查詢請求,並進行具體的資料庫操作,然後把查詢結果返回給請求者;搜尋代理對返回的結果進行識別,若存在所需的資源,則激活本地資料庫代理,對獲得的信息進行記錄,由專家系統對所蒐集的信息進行進一步的處理。這種方法有一個明顯的缺陷,即必須明確資料庫的格式,代理才能正常工作。
XML技術則可以很好的解決這個問題。用XML進行數據集成,只需對所有的異構數據源增加一個以XML為格式的封裝體,即在不改變數據源的前提下,用XML對數據源的定義描述字、數據源的創建等相關信息進行封裝。供應鏈節點上所有數據源的封裝體納入全局的XML Schema或DTD,並存儲在XML虛擬伺服器,為系統檢索、定位提供服務。在XML的集成機制里,可以通過XML封裝體實現彼此之間的數據互動,所以不需要了解資料庫的格式,從而彌補了基於多代理的集成方法在這方面的不足。
下面首先概要介紹XML的相關技術,進而給出網路環境下的、基於XML的信息集成方案:包括系統的總體框圖、層次結構、工作過程及系統主要組成部分的具體設計。

XML相關標準

XML不僅僅是一種語言,廣義的XML是一系列標準的集合。圖1說明了XML及其相關標準,在圖中,中間一層是XML基礎標準,最下層是XML的套用標準。
XML基礎標準是為XML的進一步實用化制定的標準,它規定了採用XML制定標準時的一些公用特徵、方法或規則。XML Schema描述了更加嚴格定義XML文檔的方法,以便可以更自動地處理XML文檔。XML Namespace用於保證XML DTD中名字的一致性,以便不同的DTD中的名字在需要時 可以合併到一個文檔中。DOM定義了一組與平台和語言無關的接口,以便程式和腳本能夠動態訪問和修改XML文檔內容、結構及樣式。 XQuery的目的是為從Web文檔中提取數據,提供一種靈活的查詢機制。XPath描述如何識別、選擇、匹配XML檔案中的各個構成元件,包括元素、屬性、文字內容等。XPointerXLink標準,規定了有關定位、連結方面的內容。CSS被用來作為XML文檔顯示的樣式標準等等。

主要技術特點

XML是一種元標記語言,強調以數據為核心,這兩大特點在XML的眾多技術特點中最為突出,同時也奠定了XML在信息管理中的優勢。
XML是一種元標記語言
與HTML不同,XML不是一種具體的標記語言,它沒有固定的標記符號,是一種元標記語言,是一種用來定義標記的標記語言,它允許用戶自己定義一套適於套用的DTD
XML的核心是數據
在一個普通的文檔里,往往混合有文檔數據、文檔結構、文檔樣式三個要素。而對於XML文檔來說,數據是其核心。將樣式與內容分離,是XML的巨大優點。一方面可以使應用程式輕鬆的從文檔中尋找並提取有用的數據信息,而不會迷失在混亂的各類標籤中;另一方面,由於內容與樣式的獨立,也可以為同一內容套用各種樣式,使得顯示方式更加豐富、快捷。

文檔類型定義

DTD的作用是定義允許或不允許什麼在文檔中出現。DTD的結構:一般由元素類型聲明、屬性表聲明、實體聲明、記號聲明等構成。一個典型的文檔類型定義檔案會把未來所要創作的XML文檔的元素結構、屬性類型、實體引用等預先進行規定。用戶既可以直接在XML文檔中定義DTD,也可以通過URL引用外部的DTD。DTD為XML文檔的編寫者和處理者提供了共同遵循的原則,使得與文檔相關的各種工作有了統一的標準。

詳細分析

1 定義頭和根元素
部署描述符檔案就像所有XML檔案一樣,必須以一個XML頭開始。這個頭聲明可以使用的XML版本並給出檔案的字元編碼。
DOCTYPE聲明必須立即出現在此頭之後。這個聲明告訴伺服器適用的servlet規範的版本(如2.2或2.3)並指定管理此檔案其餘部分內容的語法的DTD(Document Type Definition,文檔類型定義)。
所有部署描述符檔案的頂層(根)元素為web-app。請注意,XML元素不像HTML,他們是大小寫敏感的。因此,web-App和WEB-APP都是不合法的,web-app必須用小寫。
2 部署描述符檔案內的元素次序
XML 元素不僅是大小寫敏感的,而且它們還對出現在其他元素中的次序敏感。例如,XML頭必須是檔案中的第一項,DOCTYPE聲明必須是第二項,而web- app元素必須是第三項。在web-app元素內,元素的次序也很重要。伺服器不一定強制要求這種次序,但它們允許(實際上有些伺服器就是這樣做的)完全拒絕執行含有次序不正確的元素的Web套用。這表示使用非標準元素次序的web.xml檔案是不可移植的。
下面的列表給出了所有可直接出現在web-app元素內的合法元素所必需的次序。例如,此列表說明servlet元素必須出現在所有servlet-mapping元素之前。請注意,所有這些元素都是可選的。因此,可以省略掉某一元素,但不能把它放於不正確的位置。
l icon icon元素指出IDE和GUI工具用來表示Web套用的一個和兩個圖像檔案的位置。
l display-name display-name元素提供GUI工具可能會用來標記這個特定的Web套用的一個名稱。
l description description元素給出與此有關的說明性文本。
l context-param context-param元素聲明套用範圍內的初始化參數。
l filter 過濾器元素將一個名字與一個實現javax.servlet.Filter接口的類相關聯。
l filter-mapping 一旦命名了一個過濾器,就要利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關聯。
l listener servlet API的版本2.3增加了對事件監聽程式的支持,事件監聽程式在建立、修改和刪除會話或servlet環境時得到通知。Listener元素指出事件監聽程式類。
l servlet 在向servlet或JSP頁面制定初始化參數或定製URL時,必須首先命名servlet或JSP頁面。Servlet元素就是用來完成此項任務的。
l servlet-mapping 伺服器一般為servlet提供一個預設的URL:http://localhost/webAppPrefix/servlet/ServletName。但是,常常會更改這個URL,以便servlet可以訪問初始化參數或更容易地處理相對URL。在更改預設URL時,使用servlet-mapping元素。
l session-config 如果某個會話在一定時間內未被訪問,伺服器可以拋棄它以節省記憶體。可通過使用HttpSession的setMaxInactiveInterval方法明確設定單個會話對象的逾時值,或者可利用session-config元素制定預設逾時值。
l mime-mapping 如果Web套用具有想到特殊的檔案,希望能保證給他們分配特定的MIME類型,則mime-mapping元素提供這種保證。
l welcom-file-list welcome-file-list元素指示伺服器在收到引用一個目錄名而不是檔案名稱的URL時,使用哪個檔案。
l error-page error-page元素使得在返回特定HTTP狀態代碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面。
l taglib taglib元素對標記庫描述符檔案(Tag Libraryu Descriptor file)指定別名。此功能使你能夠更改TLD檔案的位置,而不用編輯使用這些檔案的JSP頁面。
l resource-env-ref resource-env-ref元素聲明與資源相關的一個管理對象。
l resource-ref resource-ref元素聲明一個資源工廠使用的外部資源。
l security-constraint security-constraint元素制定應該保護的URL。它與login-config元素聯合使用
l login-config 用login-config元素來指定伺服器應該怎樣給試圖訪問受保護頁面的用戶授權。它與sercurity-constraint元素聯合使用。
l security-role security-role元素給出安全形色的一個列表,這些角色將出現在servlet元素內的security-role-ref元素的role-name子元素中。分別地聲明角色可使高級IDE處理安全信息更為容易。
l env-entry env-entry元素聲明Web套用的環境項。
l ejb-ref ejb-ref元素聲明一個EJB的主目錄的引用。
l ejb-local-ref ejb-local-ref元素聲明一個EJB的本地主目錄的套用。
3 分配名稱和定製的UL
在web.xml中完成的一個最常見的任務是對servlet或JSP頁面給出名稱和定製的URL。用servlet元素分配名稱,使用servlet-mapping元素將定製的URL與剛分配的名稱相關聯。
3.1 分配名稱
為了提供初始化參數,對servlet或JSP頁面定義一個定製URL或分配一個安全形色,必須首先給servlet或JSP頁面一個名稱。可通過 servlet元素分配一個名稱。最常見的格式包括servlet-name和servlet-class子元素(在web-app元素內),如下所示:
Xml代碼
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>moreservlets.TestServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>moreservlets.TestServlet</servlet-class>
</servlet>
這表示位於WEB-INF/classes/moreservlets/TestServlet的servlet已經得到了註冊名Test。給 servlet一個名稱具有兩個主要的含義。首先,初始化參數、定製的URL模式以及其他定製通過此註冊名而不是類名引用此servlet。其次,可在 URL而不是類名中使用此名稱。因此,利用剛才給出的定義,URL http://localhost/webAppPrefix/servlet/Test 可用於 http://localhost/webAppPrefix/servlet/moreservlets.TestServlet 的場所。
請記住:XML元素不僅是大小寫敏感的,而且定義它們的次序也很重要。例如,web-app元素內所有servlet元素必須位於所有servlet- mapping元素(下一小節介紹)之前,而且還要位於5.6節和5.11節討論的與過濾器或文檔相關的元素(如果有的話)之前。類似地,servlet 的servlet-name子元素也必須出現在servlet-class之前。5.2節"部署描述符檔案內的元素次序"將詳細介紹這種必需的次序。
例如,程式清單5-1給出了一個名為TestServlet的簡單servlet,它駐留在moreservlets程式包中。因為此servlet是紮根在一個名為deployDemo的目錄中的Web套用的組成部分,所以TestServlet.class放在deployDemo/WEB- INF/classes/moreservlets中。程式清單5-2給出將放置在deployDemo/WEB-INF/內的web.xml檔案的一部分。此web.xml檔案使用servlet-name和servlet-class元素將名稱Test與TestServlet.class相關聯。圖 5-1和圖5-2分別顯示利用預設URL和註冊名調用TestServlet時的結果。

相關詞條

熱門詞條

聯絡我們