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

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

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

    Natural

     

    Java中用Servlet Listener實現定時監聽

    分兩步走:

        (1)實現 javax.servlet.ServletContextListener 接口的兩個方法:contextInitialized()和contextDestroyed()

        contextInitialized():當Servlet容器啟動時會執行contextDestroyed():當Servlet容器停止時會執行

        (2)在contextInitialized()中加入需要監聽的程序,并由 java.util.Timer 的 schedule() 方法來控制監聽程序執行的頻率

       

    DEMO(這是我的監聽的程序原型)

    package com.company.servlet;

    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import java.util.Timer;

    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;

    import com.company.task.ClearApplicationAttributeTask;

    public class TaskListener implements ServletContextListener {
        
        
    private static Timer timer = null;
        
    private static ClearApplicationAttributeTask caaTask = null;
        
    public void contextDestroyed(ServletContextEvent arg0) {
            
    //終止此計時器,丟棄所有當前已安排的任務
            if(timer != null)
                timer.cancel();
        }

        
    public void contextInitialized(ServletContextEvent arg0) {
            caaTask 
    = new ClearApplicationAttributeTask(arg0.getServletContext());
            timer 
    = new Timer(true);
            
            
    // 定義任務時間,每天0時執行
            GregorianCalendar now = new GregorianCalendar();
            now.set(Calendar.HOUR, 
    0);
            now.set(Calendar.MINUTE, 
    0);
            now.set(Calendar.SECOND, 
    0);
            timer.schedule(caaTask, now.getTime());
        }

    }


    package com.company.task;

    import java.util.TimerTask;

    import javax.servlet.ServletContext;

    public class ClearApplicationAttributeTask extends TimerTask {
        
    private ServletContext context = null;
        
        
    public ClearApplicationAttributeTask(ServletContext sc)
        {
            
    this.context = sc;
        }
        
    public void run() 
        {

            
    // 在這里可以做一些想做的事情,比如清空application中的屬性
            context.removeAttribute("app_name");
        }

    }

    將編譯好的class文件放入WEB-INF/classes中,最后別忘記了在Servlet容器中當前WEB應用的web.xml中加入監聽語句:

      <listener>
          
    <listener-class>com.company.servlet.TaskListener</listener-class>
      
    </listener>


    posted on 2010-03-11 12:51 此號已被刪 閱讀(1081) 評論(0)  編輯  收藏 所屬分類: J2EE

    導航

    統計

    常用鏈接

    留言簿(8)

    隨筆分類(83)

    隨筆檔案(78)

    文章檔案(2)

    相冊

    收藏夾(7)

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 中文字幕不卡亚洲| 亚洲精品国产V片在线观看| 亚洲人成影院在线| 免费看搞黄视频网站| 在线亚洲午夜理论AV大片| 国产乱妇高清无乱码免费| 亚洲中文字幕无码久久精品1| 亚洲国产午夜精品理论片在线播放| 日韩欧美一区二区三区免费观看| 亚洲国产精品久久丫| 国产电影午夜成年免费视频| 亚洲欧洲日产国码在线观看| 国产成人免费在线| 亚洲色欲啪啪久久WWW综合网| 妞干网在线免费视频| 色欲色欲天天天www亚洲伊| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 一二三区免费视频| 亚洲精品无码久久千人斩| 999久久久免费精品播放| 亚洲激情视频图片| 亚洲国产成人久久综合碰| 免费无码一区二区三区蜜桃| 亚洲国产成人久久精品影视| 国产国产人免费视频成69堂| mm1313亚洲国产精品无码试看| 免费观看国产精品| 免费无码H肉动漫在线观看麻豆| 亚洲人和日本人jizz| 四虎永久成人免费影院域名| 精品熟女少妇aⅴ免费久久 | 一级免费黄色大片| 亚洲综合在线观看视频| 久久精品网站免费观看| 国内成人精品亚洲日本语音| 亚洲精品无码午夜福利中文字幕| 成人福利免费视频| 日本永久免费a∨在线视频| 久久精品国产亚洲AV麻豆不卡| 成年私人影院免费视频网站| 中文字幕在线成人免费看|