【监听器篇】5.定时器任务

1.为什么要用定时器

  有时我们需要在一个规定的时间内执行相应的操作,例如:中国移动会在每个月的最后一天的凌晨清除用户的剩余流量,一些项目中会在每个月的25号统计公司员工的绩效等,这个时候就需要用到定时器。 

  综上,定时器是一个从某一时刻开始的时候就根据设置的时间执行相应的操作的一个工具。

2.工程说明

 要求:写一个定时器的监听器,这个监听器每十秒向控制台输出一次时间信息

 监听器:MyServletContextListener实现ServletContextListener接口,这个监听器会从服务器一启动就开始进行监听,这是因为它监听的是我们的context(application)。

在此附上工程的下载地址

3.监听器的实现

package listener;

import java.text.SimpleDateFormat;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

/*
 * 2018.5.22
 * @authoe Dragon
 * 自定义application的监听器,该监听器实现一个定时器的功能
 * 从服务启动后,该监听器就会运行
 * 定时器:实现每10秒向控制器输出一条时间信息
 */
@WebListener
public class MyServletContextListener implements ServletContextListener {

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		System.err.println("MyServletContextListener------contextDestroyed");
	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		System.err.println("MyServletContextListener------contextInitialized");
		
		//创建定时器对象
		Timer time=new Timer();
		
		//给定时器添加任务
		time.schedule(new TimerTask() {
			
			@Override
			public void run() {
				// 定时器执行的具体任务
				java.util.Date date=new java.util.Date();
				SimpleDateFormat dataFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
				System.err.println("当前的时间是:"+dataFormat.format(date));
			}
		}, 0, 10000);

	}

}

4.运行效果

                                

5.小结

  以上是监听器监听一个context对象的使用demo,通过创建定时器执行具体的任务,如果想要这个定时器执行其他的任务,应该修改run()方法中的代码。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值