目的:

我们知道在tomcat启动后,需要页面请求进行驱动来执行操作接而响应。我们希望在tomcat启动的时候能够自动运行一个后台线程,以处理我们需要的一些操作。因此需要tomcat启动时就自动加载一个类,或运行一个类的方法。

可以采用ServletContextListener。

方法:

(1)编写一个监听类,实现javax.servlet.ServletContextListener接口。

复制代码
 1 import javax.servlet.ServletContextEvent; 
 2 import javax.servlet.ServletContextListener; 
 3  
 4 import com.SWDiskTest.Control.ManagerThread; 
 5 import com.SWDiskTest.model.Chamber; 
 6  
 7 public class MyServletContextListener implements ServletContextListener { 
 8     static Chamber chamber = new Chamber(); 
 9     static{ 
10         System.out.println("static"); 
11         new Thread(new ManagerThread(chamber)).start(); 
12     } 
13  
14     @Override 
15     public void contextDestroyed(ServletContextEvent arg0) { 
16         // TODO Auto-generated method stub 
17  
18     } 
19  
20     @Override 
21     public void contextInitialized(ServletContextEvent arg0) { 
22         // TODO Auto-generated method stub 
23         System.out.println("start"); 
24  
25     } 
26  
27 }
复制代码

(2)配置web.xml

复制代码
<web-app version="3.0"  
    xmlns="http://java.sun.com/xml/ns/javaee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
  <listener> 
      <listener-class>com.SWDiskTest.startup.MyServletContextListener</listener-class> 
  </listener> 
...... 
</web-app>
复制代码

注意:

应用事件监听器程序是建立或修改servlet环境或会话对象时通知的类。它们是servlet规范的版本2.3中的新内容。注册一个监听程序涉及在web.xml的web-app元素内放置一个listener元素。虽然listener元素的结构很简单,但请不要忘记,必须正确地给出web-app元素内的子元素的次序。listener元素位于所有的servlet元素之前以及所有filter-mapping元素之后。此外,因为应用生存期监听程序是serlvet规范的2.3版本中的新内容,所以必须使用web.xmlDTD的2.3或以后版本。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!