<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 閱讀(2929) 評論(0)  編輯  收藏 所屬分類: Java
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 99视频在线免费| 日韩成人免费视频| 国产片免费福利片永久| 中文字幕在线观看亚洲视频| 黄在线观看www免费看| 久久精品国产亚洲av麻豆小说 | 久久水蜜桃亚洲AV无码精品| 日韩欧美一区二区三区免费观看| 亚洲精品电影天堂网| 国产在线观看片a免费观看| 亚洲av无码国产综合专区| 最近免费中文字幕大全视频| 亚洲AV日韩综合一区尤物 | 免费国产真实迷j在线观看| 阿v免费在线观看| 国产亚洲精品无码专区| a级毛片高清免费视频| 亚洲AV区无码字幕中文色| 免费看又黄又无码的网站| 亚洲国产综合在线| 日韩免费无砖专区2020狼| 日日狠狠久久偷偷色综合免费| 在线a亚洲v天堂网2019无码| 一级毛片在线观看免费| 亚洲AV成人噜噜无码网站| 麻豆国产入口在线观看免费 | 亚洲高清一区二区三区电影 | 亚洲精品色午夜无码专区日韩| 日本在线免费播放| 亚洲精品亚洲人成在线| 亚洲中文字幕成人在线| 99精品视频在线观看免费播放 | 一区二区免费在线观看| 亚洲国产精彩中文乱码AV| 免费精品国产日韩热久久| 爱情岛论坛免费视频| 亚洲国产成人久久综合一 | 涩涩色中文综合亚洲| 亚洲AV无码一区二区三区在线观看 | 久久国产精品免费一区| 精品亚洲成a人片在线观看少妇|