Java中用Servlet容器實現程式監聽

來源:互聯網
上載者:User
servlet|程式


分兩步走:(1). 實現 javax.servlet.ServletContextListener 介面的兩個方法:contextInitialized()和contextDestroyed() contextInitialized():當Servlet容器啟動時會執行 contextDestroyed():當Servlet容器停止時會執行(2). 在contextInitialized()中加入需要監聽的程式,並由 java.util.Timer 的 schedule() 方法來控制監聽程式執行的頻率

DEMO(這是我的一個簡訊回覆監聽的程式原型,精簡了一下)

----------------------------------------------------------------ReplyListener.java----------------------------------------------------------------

package com.hanweb.jcms;

import javax.servlet.*;

public class ReplyListener implements ServletContextListener {  private ReplyTimer rt = null;  public void contextInitialized(ServletContextEvent event) {    String status = "[SYS] SMS reply listener start .";    event.getServletContext().log(status);    System.out.println(status);

    rt = new ReplyTimer(1);    rt.start();  }

  public void contextDestroyed(ServletContextEvent event) {    String status = "[SYS] SMS reply listener stop .";    event.getServletContext().log(status);    System.out.println(status);

    if (rt != null) {      rt.stop();    }  }}

----------------------------------------------------------------ReplyTimer.java----------------------------------------------------------------

package com.hanweb.jcms;

import java.util.*;

public class ReplyTimer {  private final Timer timer = new Timer();  private final int min;

  public ReplyTimer(int minutes) {    min = minutes;  }

  public void start() {    Date date = new Date();    timer.schedule(new ReplyTask(), date, min * 60 * 1000);  }

  public void stop() {    timer.cancel();  }}

----------------------------------------------------------------ReplyTask.java----------------------------------------------------------------

package com.hanweb.jcms;

import java.util.*;

public class ReplyTask extends TimerTask {  public void doSomething() {    System.out.println("[SYS] SMS reply listener running ");  }

  public void run() {    doSomething();  }}

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

 <listener> <listener-class>com.hanweb.jcms.ReplyListener</listener-class> </listener>




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.