Java Web应用程序的初始化和关闭

14

我正在尝试实现web应用程序的初始化和关闭。这包括以下内容的初始化和关闭:

  • Hibernate (v3.6);
  • C3P0 (v0.9.1.2);
  • EHCache (v2.3.0);
  • Quartz (1.8.4);
  • 其他特定于我的Web应用程序的任务;

使用Tomcat 5.5.30 和Java 6。我的想法是避免资源泄漏,主要是由于在开发环境中重新部署web应用程序造成的。

我应该如何实现这个功能呢?

3个回答

21

通常在Web应用程序初始化和关闭时,您需要编写一个ServletContextListener

实现此操作的步骤如下:

  1. 编写一个类来实现javax.Servlet.ServletContextListener
  2. web.xml部署描述符中添加标记以注册您刚刚创建的类
  3. 部署您的应用程序

当您部署您的应用程序时,将调用contextInitialized方法。您可以在此处放置所有您想要进行的初始化。在应用程序关闭时,contextDestroyed方法将被调用。


2
完美的解决方案,正是我想要的网页应用程序。 - Dibyanshu Jaiswal

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方法。

0

但是你仍然希望以这样的方式管理资源,使得如果应用程序崩溃或正常关闭过程未被调用,它们不会泄漏。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接