Использование ServletContextListener - стандартная процедура для такого рода вещей.
Он имеет два полезных метода: один запускается при инициализации приложения, а другой - при завершении работы приложения. Это соответственно
void contextInitialized(ServletContextEvent sce)
и
void contextDestroyed(ServletContextEvent sce)
Вы захотите использовать второй для очистки.
Реализовать упомянутый интерфейс:
package com.myapp
public class AppListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent sce)
{
// Application shuts down. Put your cleanup code here.
}
public void contextInitialized(ServletContextEvent sce)
{
// Application starts up.
}
}
и зарегистрируйте его в web.xml
:
<web-app>
<listener>
<listener-class>
com.myapp.AppListener
</listener-class>
</listener>
</web-app>