监听类的使用

  1. import java.io.Serializable;  
  2. import   java.util.Timer;  
  3. import java.util.TimerTask;  
  4. import   javax.servlet.ServletContextEvent;  
  5. import   javax.servlet.ServletContextListener;  
  6.   
  7. import com.cy.business.Task;  
  8.       
  9.     public   class   TestListener   implements   ServletContextListener,Serializable{  
  10.   
  11.         private static final long serialVersionUID = 1L;  
  12.             private   Timer   timer ;  
  13.             private   Task   task=new Task();  
  14.             public TestListener() {  
  15.                 // TODO Auto-generated constructor stub  
  16.                 System.out.println("start");  
  17.             }  
  18.               
  19.               public   void   contextInitialized(ServletContextEvent   event)   {  
  20.                      timer   =   new   Timer(true);  
  21.                       
  22.                        
  23.                      timer.schedule(task,   0,   1000);//milliseconds  
  24.                      //在ServletContext中设置一系列的属性,可以在jsp的页面中调用  
  25.                      event.getServletContext().log("定时器已启动"+task.toString());  
  26.                      event.getServletContext().setAttribute("task", task);  
  27.                      event.getServletContext().setAttribute("timer", timer);  
  28.                      event.getServletContext().setAttribute("athread", task.getAthread());    
  29.               }  
  30.           
  31.               public   void   contextDestroyed(ServletContextEvent  event)   {  
  32.                          
  33.                      timer.cancel();  
  34.                      event.getServletContext().log("定时器已取消");           
  35.               }        
  36.       } 

2。web.xml中配置 

 <listener>
   <listener-class> com.listener.TestListener </listener-class>
  </listener>

 

3。test.jsp中使用监听类中设置的属性

 

  1. <head>  
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  3. <title>Insert title here</title>  
  4. <%  
  5. //调用监听类中设置的属性  
  6. Task task=(Task)(getServletContext().getAttribute("task"));  
  7. Timer timer=(Timer)(getServletContext().getAttribute("timer"));  
  8. Athread athread=(Athread)(getServletContext().getAttribute("athread"));  
  9. System.out.println("thraed stop id:"+athread.getId());  
  10. athread.stopthread();  
  11. Thread.currentThread().sleep(10*1000);  
  12. task.cancel();  
  13. //timer.schedule(new   TestTimer(),0,3*1000);//milliseconds  
  14. %>  
  15. </head> 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值