您的位置:首页 > 运维架构 > Tomcat

Tomcat启动与关闭事件监听

2014-02-20 17:05 381 查看
今天在做项目的时候,需要在tomcat启动的时候便进入某个java类中初始化一些信息。主要是加载数据字典表中的数据。通过学习了tomcat的事件处理机制以及tomcat的生命周期。将该问题成功解决,现在将这个过程记录如下:

一:首先,自定义一个监听器类,并实现ServletContextListener,重写里面的contextDestroyed和contextInitialized,将需要进行的操作写在这两个方法中。

public class TomcatListener implements ServletContextListener{

/* (non-Javadoc)
* @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
*/
@Override
public void contextDestroyed(ServletContextEvent arg0) {

System.out.println("tomcat关闭了..........");
}

/* (non-Javadoc)
* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
*/
@Override
public void contextInitialized(ServletContextEvent arg0) {

System.out.println("tomcate启动了..............");
}

}
二:在web.xml中注册该监听器。注册一个监听程序涉及在web.xml的web-app元素内放置一个listener元素。在listener元素内,listener-class元素列出监听程序的完整的限定类名,如下所示:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>cn.caculate.web.action.TomcatListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>

虽然listener元素的结构很简单,但请不要忘记,必须正确地给出web-app元素内的子元素的次序。listener元素位于所有的servlet元素之前以及所有filter-mapping元素之后。此外,因为应用生存期监听程序是serlvet规范的2.3版本中的新内容,所以必须使用web.xml DTD的2.3版本及以上,而不是2.2版本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息