Java中用Servlet容器实现程序监听

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>

时间: 2025-01-27 03:12:33

Java中用Servlet容器实现程序监听的相关文章

Java中用Servlet Listener实现定时监听

分两步走: (1). 实现 javax.servlet.ServletContextListener 接口的两个方法:contextInitialized()和contextDestroyed() contextInitialized():当Servlet容器启动时会执行 contextDestroyed():当Servlet容器停止时会执行 (2). 在contextInitialized()中加入需要监听的程序,并由 java.util.Timer 的 schedule() 方法来控制监听程

Java中用Servlet Listener实现定时监听 (Timer、TimerTask)

分两步走:     (1)实现 javax.servlet.ServletContextListener 接口的两个方法:contextInitialized()和contextDestroyed()     contextInitialized():当Servlet容器启动时会执行contextDestroyed():当Servlet容器停止时会执行     (2)在contextInitialized()中加入需要监听的程序,并由 java.util.Timer 的 schedule() 方

移动-java tree.addMouseMotionListener();鼠标监听功能

问题描述 java tree.addMouseMotionListener():鼠标监听功能 1C tree.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseMoved(MouseEvent arg0) { //鼠标移动 int x = (int) arg0.getPoint().getX(); int y = (int) arg0.getPoint().getY(); System.out

关于flex应用程序监听java发送的消息

问题描述 在java中很容易实现这样的功能,比如聊天软件,服务器端将消息发给指定的客户端.而flex中有没有这样监听java发送过来的信息.我说的不是flex去请求然后java返回那种方法.我现在要做的就是一个flash的应用程序,仿webqq那种,后台用java,前台flex.当一个人发给另一个人消息的时候通过java层怎么发送给指定的flex端.有什么监听吗?(自己想到的一种方法是每个flex端每隔一段时间去请求java层看有没有当前这个用户的消息,这种方法很容易实现不过是不是太幼稚了.)希

Java能不能实现后台键盘监听?

问题描述 如题能的话给说下用哪些类实现的 网上找后台监听的只有C的,难道Java做不了后台监听的?问题补充:到底能还是不能?用c的话不就很麻烦了,直接不用Java好了 解决方案 java的最底层是jvm,所以单纯的java不能感知jvm再下面的操作系统的情况. 可以用c写,java程序用jni调用解决方案二:已经有封装好的jni调用,http://50vip.com/blog.php?i=29解决方案三:你说的问题不是很具体如果说一直监听是不可以实现的,因为java要监听需要获得焦点如果你要的是

java开发gui教程之jframe监听窗体大小变化事件和jframe创建窗体_java

复制代码 代码如下: import java.awt.event.WindowEvent;import java.awt.event.WindowStateListener; import javax.swing.JFrame; public class WinFrame extends JFrame {  public WinFrame(){  this.setName("Window 窗口状态");  this.setSize(300,300);  this.setDefaultC

使用xmlhttp和Java session监听改善站内消息系统

session|xml 使用xmlhttp和Java session监听改善站内消息系统 bromon 原创  引自:http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=25340 这个题目含有许多需要解释的概念,最容易说明的是"站内消息",这是很多论坛都有的功能,可以通过web向其他的在线用户发送消息,很多用户都使用过.站内消息的第一个好处是大家都不需要安装客户端,你不用知道对方的MSN或

xmlhttp和Java session监听改善消息系统

session|xml 这个题目含有许多需要解释的概念,最容易说明的是"站内消息",这是很多论坛都有的功能,可以通过web向其他的在线用户发送消息,很多用户都使用过.站内消息的第一个好处是大家都不需要安装客户端,你不用知道对方的MSN或者QQ,就能与他联系,称赞他的观点或者是给他一顿臭骂. 第二个好处是客户管理方便,利用session来维护在线名单,各种脚本都已经把session操作封装得很易用了,不用像其他无状态的即时通信工具(比如使用UDP通信的工具)一样,要费一些脑细胞来解决在线

用xmlhttp和Java session监听改善站内消息系统

session|xml 原文出处:http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=25340 这个题目含有许多需要解释的概念,最容易说明的是"站内消息",这是很多论坛都有的功能,可以通过web向其他的在线用户发送消息,很多用户都使用过.站内消息的第一个好处是大家都不需要安装客户端,你不用知道对方的MSN或者QQ,就能与他联系,称赞他的观点或者是给他一顿臭骂.第二个好处是客户管理方便,利用