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

keelsike 2006-03-09 11:23:22
因为servlet在容器启动后就一直存在了,有没有办法让它在指定的时间执行一个操作呢?
比如说:在每天的0点钟生成一个静态的页面?
...全文
132 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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来实现我觉得更好控制.

谢谢各位!

剑事 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吧.

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧