1. 程式人生 > >深入淺出javaEE系列(一)---web.xml配置詳解

深入淺出javaEE系列(一)---web.xml配置詳解

web.xml是web專案最重要的一個檔案

一:定義頭和根元素
<?xml version="1.0" encoding="UTF-8"?>

        部署描述符檔案就像所有xml檔案一樣,必須以一個xml頭開始。這個頭宣告必須給出使用的xml版本和字元編碼。   

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
         id="WebApp_ID" version="3.0">

        DOCTYPE宣告必須立即出現在標頭檔案之後,這個宣告告訴伺服器使用的service規範的版本(如2.2或3.0)並指定管理此檔案其餘部分內容的語法的DTD(Document Type Definition,文件型別定義)。

      所有部署描述檔案的頂層(根)元素為web-app。請注意,xml元素不像html,他們是大小寫敏感的,因此,web-App和WEB-APP都是不合法的,web-app必須是全小寫。

二:部署描述檔案內的元素次序
    

    xml元素不僅是大小寫敏感的,而且它們對出現在其中元素的次序敏感。例如:xml頭必須是檔案中的第一項,doctype宣告必須是第二項,而web-app元素必須是第三項。在web-app元素內,元素的次序也很重要。伺服器不一定強制要求這種次序,但它們允許(實際上有些伺服器就是這樣做的)完全拒絕含有次序不正確的元素的web應用,這表示使用非標準次序的web.xml檔案是不可移植的。

    下面的列表給出了所有可直接出現在web-app元素內的合法元素所必須的次序。例如:比列表說明servlet元素必須出現在servlet-mapping元素之前。請注意,所有這些元素都是可選的,因此,可以省略掉某一元素,但不能把它放在不正確的位置。

    

    <context-param>的作用:

web.xml中<context-param>配置作用

1:啟動web專案的時候,容器(如:tomcat)會去讀取它的配置檔案web.xml,讀兩個節點:<listener></listener>和<context-param></context-param>。

2:緊接著,容器會建立一個ServletContext(上下文),這個web專案的所有部分都將共享這個上下文。

3:容器將<context-param></context-param>轉化為鍵值對,並交給ServletConetext。

4:容器建立<listener></listener>中的類例項,即建立監聽。

5:在監聽中會有contextInitialized(ServletContextEvent sce)初始化方法,在這個方法中獲得

    ServletContext = ServletContextEvent.getServletContext();

    context-param的值 = ServletContext.getInitParamter("context-param的鍵");

6:得到這個context-param的值之後,就可以了做一些操作了;注意:這個時候你的web專案還沒有完全啟動完成,這個動作迴避所有的servlet都要早。

        換句話說,這個時候,你對<context-param>中的鍵值做的操作,將在你的web專案啟動之前被執行。

7:舉例,你可能想在專案啟動之前就開啟資料庫

        那麼這裡就可以在<context-param>中設定資料庫的開啟方式,在監聽類中初始化資料庫的連線。