网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.MAX_VALUE 属性.
.Java 数据类型 和 与String之间的.
.BuildPath 方法.
.Java实时应用程序中的内存管理.
.eclipse-SDK-3.2M1-win32.
.JScript 的运算符.
.在Java中定义数据类型.
.J2EE应用部署(二):实践篇.
.JAVA简单的日历程序.
.java2html_src_0.8alpha源代码发.
.Java图像技术.
.call 方法.
.简析Java RMI 与 .NET Remoting.
.tomcat中文问题--过滤器.
.jive中的abstractFactory.
.利用RMAN转移数据和EXP/IMP转移的.
.JBuilder2005单元测试之创建测试.
.专稿:实战EJB之三 开发会话Bean.
.谈谈设计模式中的Iterator迭代器.
.用Java编程获得本机和服务器IP地.

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

发表日期:2008-1-5



分两步走:(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>
上一篇:java中找到资源文件的路径 人气:585
下一篇:使用FileFilter搜索文件 人气:844
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐