快速业务通道

Java中用Servlet Listener实现定时监听 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

Java中用Servlet Listener实现定时监听

时间:2011-09-09

分两步走:

(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(); } } }

----------------------------------------------------------------

Java中用Servlet Listener实现定时监听(2)

时间:2011-09-09

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>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号