利用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、结果


image.png

5、仓考资料


image.png
上一篇下一篇

猜你喜欢

热点阅读