有时候在开发web应用的时候,须要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,所以须要在tomcat启动时就自动加载一个类,或运行一个类的方法。java
能够采用在WEB-INF/web.xml中添加一个监听程序(ServletContextListener配置项),步骤以下:
1) 增长一个监听程序 MyServletContextListener.java, 实现javax.servlet.ServletContextListener接口web
package com.njupt.startup; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class MyServletContextListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } @Override public void contextInitialized(ServletContextEvent arg0) { // TODO Auto-generated method stub System.out.println("加载业务字典"); try { //加载数据字典的业务逻辑 } catch (Exception e) { System.out.println("加载业务字典失败!"); e.printStackTrace(); } } }
2) 配置监听器web.xml:数据库
<listener> <listener-class>com.njupt.startup.MyServletContextListener</listener-class> </listener>
注意:应用事件监听器程序是创建或修改servlet环境或会话对象时通知的类。它们是servlet规范的版本2.3中的新内容。注册一个监听程序涉及 在 web.xml的web-app元素内放置一个listener元素。虽然listener元素的结构很简单,但请不要忘记,必须正确地给出web- app元素内的子元素的次序。listener元素位于全部的servlet 元素以前以及全部filter-mapping元素以后。此外,由于应用生存期监听程序是serlvet规范的2.3版本中的新内容,因此必须使用 web.xml DTD的2.3或之后版本,而不是2.2版本,以下:tomcat
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> ... </web-app>