监听,定时器
来源:互联网 发布:淘宝售后客服具体工作 编辑:程序博客网 时间:2024/06/13 23:54
1.web.xml 配置
<listener>
<listener-class>
tool.TimerListener
</listener-class>
</listener>
2.监听器类的配置
package tool;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
import jxl.common.Logger;
public class TimerListener extends HttpServlet implements ServletContextListener {
private static final long serialVersionUID = 200601509800003l;
private static Logger log = Logger.getLogger(TimerListener.class);
/**
* 初始化定时任务线程
*
* @param sce
* ServletContextEvent
*/
public void contextInitialized(ServletContextEvent sce) {
log.info("TimerListener[ServletContextListener] initializing...");
try {
BatchMain.getInstance().startTask();
} catch (Exception e) {
}
log.info("...TimerListener[ServletContextListener] initialized");
}
/**
* 销毁定时任务线程
*
* @param sce
* ServletContextEvent
*/
public void contextDestroyed(ServletContextEvent sce) {
log.info("TimerListener[ServletContextListener] destoring...");
BatchMain.getInstance().destoryTask();
log.info("...TimerListener[ServletContextListener] destoried.");
}
}
3、 执行类的配置
package tool;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import jxl.common.Logger;
public class BatchMain {
private static Logger log = Logger.getLogger(BatchMain.class);
private static BatchMain instance;
// 任务调度定时器
private Timer timer;
private BatchMain() {
timer = new Timer();
}
public synchronized static BatchMain getInstance() {
if (instance == null) {
instance = new BatchMain();
}
return instance;
}
/**
* 启动指定任务线程
*
*/
public void startTask() {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH)+1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");
calendar.set(year, month, day, 23, 10, 00);
Date date = calendar.getTime();
Timer timer = new Timer();
System.out.println(System.currentTimeMillis());
if (date.getTime()<System.currentTimeMillis()){
System.out.println("小于当前时间"+date.getTime());
}
else{
System.out.println("大于当前时间"+date.getTime());
}
timer.schedule(new SchemeCancelTask(), 0, 24*60*60*1000);
}
/**
* 启动指定任务线程
*
*/
public void destoryTask() {
log.info("BatchMain startTask canceling...");
timer.cancel();
}
}
4;定时器任务类的配置:
package tool;
import java.util.*;
import jxl.common.Logger;
public class SchemeCancelTask extends TimerTask {
private static Logger log = Logger.getLogger(SchemeCancelTask.class);
public SchemeCancelTask() {
}
public void run() {
try {
String xn = CommonInfo.getCurrentXn();
String xq=CommonInfo.getCurrentXq();
String[] str = { "一", "二", "三", "四", "五", "六", "七", "八", "九" };
String xnxq = xn+"第"+str[Integer.parseInt(xq)-1]+"学期";
String sql = "update hp_xkshezhi set xnxq=?";
String[] params = {xnxq};
DB dao = new DB();
dao.executeUpdate(sql, params);
dao.closeConnection();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- 监听,定时器
- 定时器加回调监听
- js使用定时器监听控件状态
- android CountDownTimer定时器实现连续单击监听
- JAVA WEB应用下监听与定时器的配合使用
- JAVA WEB应用下监听与定时器的配合使用
- UIScrollView的监听方法和定时器的使用
- AngularJS监听页面关闭,定时器$interval()的使用
- 定时器
- 定时器
- 定时器
- 定时器
- 定时器
- 定时器
- 定时器
- 定时器
- 定时器
- 定时器
- 面向对象的六大原则
- Elasticsearch扩展性插件
- HLS(HTTP Live Streaming)视频直播技术实战
- vim学习笔记
- java集合
- 监听,定时器
- 手动注入Bean
- jquery判断单选是否为空
- Android应用在不同版本间兼容性处理
- iOS 版本号
- 二叉树前序遍历的迭代实现
- 使用Fragment懒加载的一种方式
- linux下PHP 环境搭建
- 不懂技术的人不要对懂技术的人说这很容易实现