2011-09-29 87 views

回答

1

的幾點思考:

  • 你將擁有一流的至少兩個實例。當你的servlet收到一個傳入請求時,容器創建一個爲ServletContextListener,至少一個爲HttpServlet
  • 由於2+實例不能使用實例(只是靜態)成員共享數據。
  • 如果其他類不使用數據/你初始化對象和份額聽衆,因爲你沒有把這些數據/對象的應用範圍在ServletContextListener,並在HttpServlet檢索它們很容易。
  • 如果您的初始化邏輯很複雜,可能需要將它與servlet代碼分開(例如,將初始化代碼放到不同的類中,並使用應用程序範圍來獲取servlet中的共享對象)。
0

這一切都取決於你,實施者。 ServletcontextListener有它的特殊用途。在使用它之前,確保你知道它是什麼。

如果你正在創建的HTTP Servlet。如果你的類要「收到有關更改Web應用程序的servlet上下文通知」你必須擴展HttpServlet(從複製的Javadoc)是的,你的一部分必須實現ServletcontextListener。