服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java程序中用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中加入监听语句:
  
  
  com.hanweb.jcms.replylistener
  


扫描关注微信公众号