有時候在開發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>