ServletContextListener监听器应用场景

在JavaWeb被监听的事件源为:ServletContext、HttpSession、ServletRequest,即三大域对象。

  • 监听域对象“创建”与“销毁”的监听器
  • 监听域对象“操作域属性”的监听器
  • 监听HttpSession的监听器

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();
    }
}



    
        MyservletContextListener
    

 

你可能感兴趣的:(java)