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>