import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ServletTimer implements ServletContextListener {
private Timer timer;
public void contextDestroyed(ServletContextEvent arg0) {//销毁定时器
timer.cancel();
System.out.println("定時器銷毀");
}
public void contextInitialized(ServletContextEvent event) {//启动定时器
timer = new java.util.Timer(true);
SampleTimer sampleTimer = new SampleTimer(event.getServletContext());
System.out.println("定时器启动");
timer.schedule(sampleTask, 0,60*60*1000);//一个小时执行一次
System.out.println("定时器完成");
}
}
任务类:
public class SampleTimer extends TimerTask {
private ServletContext context;
private static final int C_SCHEDULE_HOUR = 15;
private Timer timer;
public SampleTask(ServletContext context){
this.context = context;
}
@Override
public void run() {
System.out.print("dsdsd");
}
}
在web.xml中配置如下:
<listener>
<listener-class>com.*.*.ServletTimer </listener-class>
</listener>
Servlet定时器实现
本文介绍了一个基于Servlet的定时器实现方案。通过实现ServletContextListener接口,在应用启动时创建一个定时任务并设置为每小时执行一次,同时在应用关闭时销毁定时器。
1514

被折叠的 条评论
为什么被折叠?



