2010-12-06 43 views
10

我想實現一個webapp的初始化和關閉。包括初始化和關機:java web應用程序的初始化和關閉

  • Hibernate(v3.6);
  • C3P0(v0.9.1.2);
  • EHCache(v2.3.0);
  • 石英(1.8.4);
  • 其他特定於我的webapp的任務;

使用Tomcat 5.5.30和Java 6.我的想法是避免資源泄漏,主要是因爲webapp在開發環境中重新部署。

我該如何實施?

回答

19

通常用於Web初始化和關閉,您將編寫ServletContextListener

做到這一點的步驟是:

  1. 編寫實現javax.Servlet.ServletContextListener
  2. 類標籤添加到web.xml部署描述符註冊你剛剛創建的類
  3. 將應用程序部署

當您部署應用程序時,將調用contextInitialized方法。你可以在這裏放置你想要的所有初始化。在應用程序關閉contextDestroyed方法將被調用。

+2

完美的作品,謝謝。 – 2010-12-06 12:34:59

0

但是,您仍然希望以這樣的方式管理資源,即在應用程序崩潰並且不調用正常關機例程時不會泄漏資源。

0

它也可以使用HTTP Servlet,但是偵聽器是更好的選擇。

你不得不延長一類具有HttpServlet和下面的東西設置到你的web.xml:

<servlet> 
    <servlet-name>StartupServlet</servlet-name> 
    <servlet-class>your.package.servlets.StartupServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

類可以覆蓋init和destroy方法。