监听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

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

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

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

【编辑推荐】

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

2009-07-09 11:27:59

Servlet容器

2009-07-09 15:30:53

Servlet容器会话跟踪

2009-07-08 14:01:47

Servlet容器

2009-07-08 14:22:36

Servlet容器匹配过程

2009-07-08 17:39:23

Servlet监听器

2009-07-09 11:21:40

Servlet注册

2009-07-08 11:17:10

Servlet容器Servlet Con

2009-07-08 15:59:55

doFilter方法

2009-07-06 16:16:33

Servlet容器工作

2009-05-18 10:43:17

TomcatServletJetty

2009-07-09 14:32:39

2022-03-31 15:17:04

JavaSocketServlet容器

2012-03-21 12:57:29

JavaJettyServlet

2013-05-28 13:44:32

Android开发Android应用ijetty

2009-07-06 13:48:53

Servlet监听器

2009-07-03 16:53:11

Servlet容器

2019-12-09 15:00:48

TomcatServlet容器

2011-02-25 17:22:55

Servlet模块方法模式

2009-07-03 17:24:31

Servlet页面跳转

2009-07-03 18:14:27

Servlet线程安全
点赞
收藏

51CTO技术栈公众号