因为servlet在容器启动后就一直存在了,有没有办法让它在指定的时间执行一个操作呢?
比如说:在每天的0点钟生成一个静态的页面?

解决方案 »

  1.   

    怎么也得在服务器上有这个个timmer吧.
      

  2.   

    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();
            }
        };
    }
      

  3.   

    呵呵,自己实现了,也是找了一些资料知道的.
    关键有两点:
    1.在容器启动时将servlet初始化;这里我先建立了一个Test的servlet,在web.xml中设置了该servlet的load-on-startup参数(我设置为2),使servlet在容器启动时就执行init方法;
    2.servlet中运行一个定时线程;这个很简单,创建一个实现Runnable的类,在Test中将它start();
    PS:Timer类其实也是基于一个线程的,直接用Thread来实现我觉得更好控制.谢谢各位!
      

  4.   

    补充一下第二点,这里叫Test的servlet只写了一个init方法,没有doGet和doPost,在这个init中将实现Runnable的类start();