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("这段程序正在运行");
}
}
}
例子:
<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("这段程序正在运行");
}
}
}
相关文章推荐
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- 非窗口类中使用定时器的方法(二)
- ASP.NET项目中使用定时器的方案
- 非窗口类中使用定时器的方法
- QT中定时器的使用方法
- Windows程序设计(三)---定时器的三种使用方法
- 项目同时使用Prototypet和jQuery冲突解决方法
- 非窗口类中使用定时器的方法
- C# B/S程序中使用DropDownList出现System.ArgumentOutOfRangeException: “DropDownList1”有一个无效 SelectedValue,因为它不在项目列表中的解决方法
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- VS 2005 Web Application Project 项目中Profile的使用方法(更新)
- 非窗口类中使用定时器的方法(一)
- 在VS2005中使用强类型数据 - 开发项目的好方法
- 平时在做ASP.NET项目里经常使用的一些函数和方法〔zz〕
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- VC++实现非窗口类中使用定时器的方法
- VC++MFC中的定时器使用方法
- 防止出现乱码,J2EE项目统一使用UTF-8编码设置方法