ServletContextListener监听器应用场景

java 专栏收录该内容
98 篇文章 0 订阅

在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();
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
<!--    配置监听器-->
    <listener>
        <listener-class>MyservletContextListener</listener-class>
    </listener>
</web-app>

 

  • 1
    点赞
  • 0
    评论
  • 3
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论
请先登录 后发表评论~
©️2021 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页

打赏作者

小匠心

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值