利用ServletContextListener 和 Tomca
2019-12-16 本文已影响0人
来个第一次
1、场景
有时需要用tomcat做运行多线程的容器
2、方法
a、实现ServletContextListener接口,这个接口会监听servlet容器的启动和关闭事件
b、在web.xml中配置listener,指向上面的实现类
3、直接看代码
web.xml中添加
<listener>
<listener-class>com.yaoguang.listener.CacheListener</listener-class>
</listener>
package com.yaoguang.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class CacheListener implements ServletContextListener {
private boolean stop = false;
private Thread t = null;
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
stop = false;
outputMsg();
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
stop = true;
}
public void outputMsg() {
t = new Thread(new Runnable() {
@Override
public void run() {
while (! stop) {
System.out.println("welcome to here");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
t.start();
}
}
4、结果
![](https://img.haomeiwen.com/i14188158/eea1924034d4b6db.png)
5、仓考资料
![](https://img.haomeiwen.com/i14188158/07f51f5b495d1eaf.png)