監聽類的使用

來源:互聯網
上載者:User
  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> 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.