您的位置:首页 > 编程语言 > Java开发

javaweb项目中使用定时器的方法

2015-03-23 16:51 190 查看
1.创建一个javaweb项目。在web.xml里配置信息。

例子:

 <listener>

  <listener-class>timer.TimerListener</listener-class>

 </listener>

2.创建一个TimerListener类,实现ServletContextListener接口。

例子:

package timer;

import java.util.Calendar;

import java.util.Timer;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

 

public class TimerListener implements ServletContextListener{

 private Timer timer=null;

 @Override

 public void contextDestroyed(ServletContextEvent sce) {

  if(timer!=null){

   timer.cancel();

   sce.getServletContext().log("定时器已销毁");

  }

 }

 @Override

 public void contextInitialized(ServletContextEvent sce) {

  Calendar now = Calendar.getInstance();//服务器正常的时间

  

  

  //执行任务,每天16:49

  long time_updateDB = 24*60*60*1000; 

  Calendar everyday = Calendar.getInstance();

  everyday.set(Calendar.HOUR_OF_DAY, 16);

  everyday.set(Calendar.MINUTE, 49);

  everyday.set(Calendar.SECOND, 0);

  if(now.compareTo(everyday) > 0){

   everyday.add(Calendar.DAY_OF_MONTH, 1);

  }

  timer = new Timer(true);

  sce.getServletContext().log("时器已启动");

  timer.schedule(new TimerJob(sce.getServletContext()), everyday.getTime(),time_updateDB);

  

  

 }

}

3.创建一个TimerJob类 继承TimerTask

例子:

package timer;

import java.util.TimerTask;

import javax.servlet.ServletContext;

 

public class TimerJob extends TimerTask{

 private ServletContext servletContext;

 public TimerJob(ServletContext servletContext) {

  this.servletContext = servletContext;

    }

 @Override

 public void run() {

  servletContext.log("定时器开始执行");

  for (int i = 0; i < 100; i++) {

   System.out.println("这段程序正在运行");

  }

 }

 

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: