ServletContextListener主要应用场景:

1.任务调度

2.Spring中去初始化

范例(每隔一秒去打印。。。持续监听):

(1)创建线程去实现一定的业务逻辑并创建监听并配置(业务逻辑我这里用一个打印代替了,并设置休眠时间为1s)

import java.util.Date;

public class ScheduleServer implements Runnable {
@Override
public void run() {
while (true) {
System.out.println(new Date() +"扫描任务调度。。。。。。");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/*
* servletContext监听器
*
* 应用场景:任务调度和spring中去初始化
* */
public class MyservletContextListener implements ServletContextListener {

Thread thread = null;

/*
* 被创建时调用
* servletContextEvent事件源,可以获得到ServletContext对象
* */
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("被创建");
// 启动定时任务
thread = new Thread(new ScheduleServer());
thread.start();
}

@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("被销毁");
thread.stop();
}
}