web.xml中load-on-startup的作用

原文:http://www.blogjava.net/xzclog/archive/2011/09/29/359789.html


如下一段配置,熟悉DWR的再熟悉不過了:

<servlet>
   <servlet-name>dwr-invoker</servlet-name>
   <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
   <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
   <servlet-name>dwr-invoker</servlet-name>
   <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

我們注意到它裏面包含了這段配置:<load-on-startup>1</load-on-startup>,那麼這個配置有什麼作用呢?

貼一段英文原汁原味的解釋如下:
Servlet specification:
The load-on-startup element indicates that this servlet should be loaded (instantiated and have its init() called) on the startup of the web application. The optional contents of these element must be an integer indicating the order in which the servlet should be loaded. If the value is a negative integer, or the element is not present, the container is free to load the servlet whenever it chooses.   If the value is a positive integer or 0, the container must load and initialize the servlet as the application is deployed. The container must guarantee that servlets marked with lower integers are loaded before servlets marked with higher integers. The container may choose the order of loading of servlets with the same load-on-start-up value.

翻譯過來的意思大致如下:
1)load-on-startup元素標記容器是否在啓動的時候就加載這個servlet(實例化並調用其init()方法)。

2)它的值必須是一個整數,表示servlet應該被載入的順序

2)當值爲0或者大於0時,表示容器在應用啓動時就加載並初始化這個servlet;

3)當值小於0或者沒有指定時,則表示容器在該servlet被選擇時纔會去加載。

4)正數的值越小,該servlet的優先級越高,應用啓動時就越先加載。

5)當值相同時,容器就會自己選擇順序來加載。

所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是優先級,而非啓動延遲時間。

如下題目:

2.web.xml中不包括哪些定義(多選)


a.默認起始頁


b.servlet啓動延遲時間定義


c.error處理頁面


d.jsp文件改動後重新載入時間


答案:b,d

通常大多數Servlet是在用戶第一次請求的時候由應用服務器創建並初始化,但<load-on-startup>n</load-on-startup>   可以用來改變這種狀況,根據自己需要改變加載的優先級!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章