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中加入监听语句:
com.hanweb.jcms.ReplyListener
【编辑推荐】
本文题目:监听Servlet容器的方法
当前链接:http://www.csdahua.cn/qtweb/news34/328734.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网