java web-application初始化和关闭

时间:2010-12-06 11:48:33

标签: java web-applications initialization shutdown

我正在尝试实现webapp的初始化和关闭。这包括初始化和关闭:

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

使用Tomcat 5.5.30和Java 6.我的想法是避免资源泄漏,主要是因为在开发环境中重新部署了webapp。

我该如何实现?

3 个答案:

答案 0 :(得分:20)

通常对于Web初始化和关闭,您将编写ServletContextListener

执行此操作的步骤如下:

  1. 编写一个实现javax.Servlet.ServletContextListener
  2. 的类
  3. web.xml部署描述符添加标记以注册您刚刚创建的类<​​/ li>
  4. 部署您的应用程序
  5. 部署应用程序时,将调用contextInitialized方法。您可以在此处放置所需的所有初始化。在应用程序关闭时将调用contextDestroyed方法。

答案 1 :(得分:1)

它也可以使用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方法。

答案 2 :(得分:0)

但是,您仍然希望以这样的方式管理资源:如果应用程序崩溃并且未调用正常关闭例程,它们不会泄漏。