2016-10-09 25 views
0

根據servlet的生命週期,首先請求容器的servlet將調用init()方法(只對第一個請求使用一次),之後它將分別服務於service()方法,最後(servlet的生命週期結束)destroy()方法將叫做。是HttpServlet Singleton?

意味着init()destory()會在servlet的生命期中調用一次。

我的查詢情況如下:

  1. 是否servlet的生命週期將是相同的容器的生命週期。所以我明白的是,一旦我們啓動tomcat並且首先請求servlet時,它會調用init()方法,一旦我們停止服務器(tomcat或webcontainer),它將調用destroy()方法。

所以從上面看來,這個servlet是單身人士。

  1. 當servlet生命週期完成時。據我瞭解,這意味着一旦你啓動服務器(第一次請求後),servlet的生命週期將開始,一旦你停止服務器,服務器的生命週期將完成?

請確認我的理解。

回答

1

2.2實例

該servlet聲明其是通過在第8章所描述的註釋作爲 數,「註解和可插拔」或部分包含的Web應用程序的 部署描述符的如第14章「部署描述符」中所述,servlet, 控制servlet容器如何提供servlet實例。對於在分佈式環境中託管的不是 的servlet(默認),servlet 容器每個servlet聲明只能使用一個實例。然而,對於實現SingleThreadModel接口的servlet, , servlet容器可以實例化多個實例,以處理重要的請求加載並將請求序列化到特定實例。章節 2 Servlet接口7在部署描述符中標記爲 的應用程序的一部分被部署爲 可分發的情況下,每個Java虛擬機(JVM™)1每個servlet只能有一個實例 聲明。但是,如果可分發應用程序中的小服務程序實現SingleThreadModel接口,則容器可以在該容器的每個JVM中實例化該小服務程序的多個實例。

從規範和單身的定義,以上報價那麼回事,我們不能說Servlet是辛格爾頓