【servlet】请问servlet中如何在一个指定的时间触发一个动作

keelsike 2006-03-09 11:23:22
因为servlet在容器启动后就一直存在了,有没有办法让它在指定的时间执行一个操作呢?
比如说:在每天的0点钟生成一个静态的页面?
...全文
94 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
keelsike 2006-03-09
补充一下第二点,这里叫Test的servlet只写了一个init方法,没有doGet和doPost,在这个init中将实现Runnable的类start();
回复
keelsike 2006-03-09
呵呵,自己实现了,也是找了一些资料知道的.
关键有两点:
1.在容器启动时将servlet初始化;这里我先建立了一个Test的servlet,在web.xml中设置了该servlet的load-on-startup参数(我设置为2),使servlet在容器启动时就执行init方法;
2.servlet中运行一个定时线程;这个很简单,创建一个实现Runnable的类,在Test中将它start();


PS:Timer类其实也是基于一个线程的,直接用Thread来实现我觉得更好控制.

谢谢各位!

回复
jfy3d 2006-03-09
public class CheckBean {
private Timer timer;

public CheckBean() {

}

public void start(int t) {
timer = new Timer();
timer.scheduleAtFixedRate(task, 0, t * 1000*60*60);
}

public void check() {
try {
//do
} catch (Exception e) {
e.printStackTrace();
}
}

TimerTask task = new TimerTask() {
public void run() {
check();
}
};


}
回复
tomuno 2006-03-09
也可以使用批处理
回复
grapepaul 2006-03-09
怎么也得在服务器上有这个个timmer吧.
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-03-09 11:23
社区公告
暂无公告