监听类的使用

1。监听类

import java.io.Serializable;
import   java.util.Timer;
import java.util.TimerTask;
import   javax.servlet.ServletContextEvent;
import   javax.servlet.ServletContextListener;

import com.cy.business.Task;
    
    public   class   TestListener   implements   ServletContextListener,Serializable{

		private static final long serialVersionUID = 1L;
			private   Timer   timer ;
            private   Task   task=new Task();
            public TestListener() {
				// TODO Auto-generated constructor stub
            	System.out.println("start");
			}
            
              public   void   contextInitialized(ServletContextEvent   event)   {
                     timer   =   new   Timer(true);
                    
                     
                     timer.schedule(task,   0,   1000);//milliseconds
                     //在ServletContext中设置一系列的属性,可以在jsp的页面中调用
                     event.getServletContext().log("定时器已启动"+task.toString());
                     event.getServletContext().setAttribute("task", task);
                     event.getServletContext().setAttribute("timer", timer);
                     event.getServletContext().setAttribute("athread", task.getAthread());  
              }
        
              public   void   contextDestroyed(ServletContextEvent  event)   {
                       
                     timer.cancel();
                     event.getServletContext().log("定时器已取消");         
              }      
      }

 

  

 

 

2。web.xml中配置 

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

 

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

 

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值