Java中用Servlet容器实现程序监听
分两步走:
(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);[iocblog.net 来源]
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>
Tag: Servlet
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。