监听Servlet容器的方法

开发 后端
本文介绍监听Servlet容器的方法,以及介绍在Servlet容器中当前WEB应用的web.xml中加入监听语句。

1.实现 javax.servlet.ServletContextListener 接口的两个方法:contextInitialized()和contextDestroyed()

contextInitialized():当Servlet容器启动时会执行
contextDestroyed():当Servlet容器停止时会执行

2.在contextInitialized()中加入需要监听的程序,并由 java.util.Timer 的 schedule() 方法来控制监听程序执行的频率

DEMO(这是我的一个短信回复监听的程序原型,精简了一下)

ReplyListener.java

  1. package com.hanweb.jcms;  
  2.  
  3. import javax.servlet.*;  
  4.  
  5. public class ReplyListener implements ServletContextListener {  
  6. private ReplyTimer rt = null;  
  7. public void contextInitialized(ServletContextEvent event) {  
  8. String status = "[SYS] SMS reply listener start .";  
  9. event.getServletContext().log(status);  
  10. System.out.println(status);  
  11.  
  12. rt = new ReplyTimer(1);  
  13. rt.start();  
  14. }  
  15.  
  16. public void contextDestroyed(ServletContextEvent event) {  
  17. String status = "[SYS] SMS reply listener stop .";  
  18. event.getServletContext().log(status);  
  19. System.out.println(status);  
  20.  
  21. if (rt != null) {  
  22. rt.stop();  
  23. }  
  24. }  

ReplyTimer.java

  1. package com.hanweb.jcms;  
  2.  
  3. import java.util.*;  
  4.  
  5. public class ReplyTimer {  
  6. private final Timer timer = new Timer();  
  7. private final int min;  
  8.  
  9. public ReplyTimer(int minutes) {  
  10. min = minutes;  
  11. }  
  12.  
  13. public void start() {  
  14. Date date = new Date();  
  15. timer.schedule(new ReplyTask(), date, min * 60 * 1000);  
  16. }  
  17.  
  18. public void stop() {  
  19. timer.cancel();  
  20. }  

ReplyTask.java

  1. package com.hanweb.jcms;  
  2.  
  3. import java.util.*;  
  4.  
  5. public class ReplyTask extends TimerTask {  
  6. public void doSomething() {  
  7. System.out.println("[SYS] SMS reply listener running ");  
  8. }  
  9.  
  10. public void run() {  
  11. doSomething();  
  12. }  

将编译好的class文件放入WEB-INF/classes中,***别忘记了在Servlet容器中当前WEB应用的web.xml中加入监听语句:

  1. <listener> 
  2. <listener-class>com.hanweb.jcms.ReplyListener</listener-class> 
  3. </listener> 

【编辑推荐】

  1. 详解Apache Servlet的安装
  2. 优化Servlet配置为web.xml瘦身
  3. 如何让XML来配置Servlet
  4. 解决Servlet JSP页面乱码问题
  5. Servlet和JSP的安全问题
责任编辑:佚名 来源: IT168
相关推荐

2009-07-08 17:39:23

Servlet监听器

2009-07-09 11:27:59

Servlet容器

2009-07-08 14:01:47

Servlet容器

2009-07-08 14:22:36

Servlet容器匹配过程

2009-07-09 15:30:53

Servlet容器会话跟踪

2009-07-09 11:21:40

Servlet注册

2009-07-08 15:59:55

doFilter方法

2009-07-08 11:17:10

Servlet容器Servlet Con

2009-07-09 14:32:39

2009-07-06 13:48:53

Servlet监听器

2009-07-06 16:16:33

Servlet容器工作

2009-05-18 10:43:17

TomcatServletJetty

2022-03-31 15:17:04

JavaSocketServlet容器

2013-05-28 13:44:32

Android开发Android应用ijetty

2012-03-21 12:57:29

JavaJettyServlet

2009-07-03 13:22:37

调用Servlet

2009-07-06 16:59:16

Servlet方法

2009-07-07 08:46:18

JettyServlet容器

2009-07-03 18:14:27

Servlet线程安全

2011-02-25 17:22:55

Servlet模块方法模式
点赞
收藏

51CTO技术栈公众号