Servlet的生命週期

Servlet的生命週期包括即Servlet從創建到銷燬的這一個過程,可以將Servlet的生命週期分爲初始化階段、服務階段、銷燬階段這三個階段。下面通過一張圖來描述Servlet的生命週期,如圖所示:

 

Servlet生命週期

通過對圖ervlet生命週期的理解,下面對Servlet的生命週期的三個階段進行詳細介紹:

初始化階段

服務器會在客戶端第一次訪問Servlet,或服務器啓動的時候爲該Servlet創建實例。要想在服務器啓動的時候就爲Servlet創建實例,需要在web.xml中進行配置。當服務器爲Servlet創建實例後,會在第一時間調用init()方法,完成Servlet的初始化操作。注意這個init()方法在Servlet的一生中,只會被服務器調用一次。

服務階段

當服務器接收到請求時,會去調用Servletservice()方法來處理請求,而且每次請求的時候,服務器都會調用service()方法,並且創建新的ServletRequestServletResponse對象,所以該方法在Servlet的一生中會被調用多次。

銷燬階段

當服務器關閉或者當前web應用被移出服務器時,Servlet會被銷燬,在銷燬之前,服務器會調用destroy()方法,可以把Servlet的“臨終遺言“放在該方法中,例如把對某些資源的釋放等代碼放在destroy()方法中。

 

Servlet何時被創建:

1,默認情況下,當WEB客戶第一次請求訪問某個Servlet的時候,WEB容器將創建這個Servlet的實例。

2,當web.xml文件中如果<servlet>元素中指定了<load-on-startup>子元素時,Servlet容器在啓動web服務器時,將按照順序創建並初始化Servlet對象。

  注意:在web.xml文件中,某些Servlet只有<serlvet>元素,沒有<servlet-mapping>元素,這樣我們無法通過url的方式訪問這些Servlet,這種Servlet通常會在<servlet>元素中配置一個<load-on-startup>子元素,讓容器在啓動的時候自動加載這些Servlet並調用init()方法,完成一些全局性的初始化工作。

 

Web應用何時被啓動:

  1,當Servlet容器啓動的時候,所有的Web應用都會被啓動

  2,控制器啓動web應用



原文地址: http://blog.csdn.net/bemavery/article/details/45343589

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