<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-86  評論-33  文章-0  trackbacks-0
    Java定時器(java.util.Timer)有定時觸發計劃任務的功能,通過配置定時器的間隔時間,在某一間隔時間段之后會自動有規律的調用預先所安排的計劃任務(java.util.TimerTask)。另外,由于我們希望當Web工程啟動時,定時器能自動開始計時,在整個Web工程的生命期里,定時器能在每晚深夜觸發一次報表計算引擎。因此定時器的存放位置也值得考查,不能簡單的存在于單個Servlet或JavaBean中,必須能讓定時器宿主的存活期為整個Web工程生命期,在工程啟動時能自動加載運行。結合這兩點,跟Servlet上下文有關的偵聽器就最合適不過了,通過在工程的配置文件中加以合理配置,會在工程啟動時自動運行,并在整個工程生命期中處于監聽狀態。

    ......下面就Servlet偵聽器結合Java定時器來講述整個實現過程。要運用Servlet偵聽器需要實現javax.servlet.ServletContextListener接口,同時實現它的contextInitialized(ServletContextEvent    event)和contextDestroyed(ServletContextEvent    event)兩個接口函數。考慮定時器有個建立和銷毀的過程,看了前面兩個接口函數,就不容置疑的把建立的過程置入contextInitialized,把銷毀的過程置入contextDestroyed了。
    package com.derek.servlet;

    import javax.servlet.*;
    import javax.servlet.http.*;
    import com.derek.pub.TimerManager;
    /**
     * 啟動定時器的監聽器
     * 
    @author derek
     * 
    @version 1.0
     
    */
    public class TimerListener extends HttpServlet implements
            ServletContextListener {
        
    private TimerManager tm = null;
        
    //Notification that the web module is ready to process requests
        public void contextInitialized(ServletContextEvent sce) {
          
    int day,hour,min,sec;      
          day 
    = 26; hour = 16; min = 42; sec = 0;     
          tm 
    = new TimerManager(day,hour,min,sec);
        }

        
    //Notification that the servlet context is about to be shut down
        public void contextDestroyed(ServletContextEvent sce) {
           tm.destoryTimer();
        }
    }
    package com.derek.pub;

    import java.util.Timer;
    import java.util.Date;
    import java.util.Calendar;

    /**
     * 定時器
     * 
    @author derek
     * 
    @version 1.0
     
    */
    public class TimerManager {
        Timer t 
    = null;
        
    public TimerManager(int day,int hour,int min,int sec) {
            time(day,hour,min,sec);
        }
     
        
    public void time(int day,int hour,int min,int sec){    
        Calendar c 
    = Calendar.getInstance();
        c.set(Calendar.DAY_OF_MONTH,day);
        c.set(Calendar.HOUR_OF_DAY,hour);
        c.set(Calendar.MINUTE,min);
        c.set(Calendar.SECOND,sec);
        Date date 
    = c.getTime();
        System.out.println(c.getTime());
        t
    = new Timer();
        MyTask mt 
    = new MyTask();
        t.schedule(mt,date);
        }
        
    public void destoryTimer(){
        t.cancel();
        }
    }
    package com.derek.pub;
    import java.util.TimerTask;
    /**
     * 計劃任務代碼
     * 
    @author derek
     * 
    @version 1.0
     
    */
    public class MyTask extends TimerTask{
        
    public MyTask() {
        }
        
    /**
         * 任務塊
         
    */
        
    public void run() {
            System.out.println(
    "定時器RUN");
        }
    }
    posted on 2006-04-26 16:52 Derek.Guo 閱讀(2922) 評論(0)  編輯  收藏 所屬分類: Java
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 亚洲精品电影天堂网| 亚洲人成色777777精品| caoporm超免费公开视频| 国产成人免费片在线观看| 国产亚洲精品免费视频播放| 色偷偷亚洲第一综合网| 国产亚洲精品免费| 美女羞羞喷液视频免费| 国产精品亚洲产品一区二区三区| 国产免费播放一区二区| 日本红怡院亚洲红怡院最新| 99在线观看精品免费99| 亚洲国产模特在线播放| 成年人性生活免费视频| 亚洲男同gay片| 亚洲国产综合久久天堂| 中文字幕a∨在线乱码免费看| 四虎免费在线观看| 亚洲国产精品lv| 99热这里只有精品免费播放| 中文字幕 亚洲 有码 在线| a级毛片毛片免费观看久潮 | 亚洲免费人成在线视频观看| 亚洲国产人成网站在线电影动漫| 30岁的女人韩剧免费观看| 亚洲精品伊人久久久久| 日韩精品成人亚洲专区| 美女被cao网站免费看在线看| 亚洲制服丝袜精品久久| 四只虎免费永久观看| 99久久免费国产精品热| 亚洲人成电影在线观看青青| 四虎成人免费观看在线网址| 国产免费高清69式视频在线观看| 中文字幕亚洲综合精品一区| 永久免费视频v片www| 中文精品人人永久免费| wwwxxx亚洲| 亚洲中文字幕无码久久综合网| 国产亚洲精品2021自在线| 亚洲国产精品SSS在线观看AV |