监听器Listener:ServletContextListener监听器

    无论是SSH还是SSM只要是做web开发,就无法回避Servlet技术,而Servlet技术是Servlet规范中三个技术点之一,这三个技术点分别是:servlet技术、listener技术和filter技术。前面几篇博文介绍了servlet技术,接下来几篇博文将介绍listener技术。

一、首先什么是Listener(监听器)?

        监听器就是监听某个对象的状态变化的组件,监听器中有几个重要概念:

    1)事件源:被监听的对象。主要有三个域对象:request、session、servletContext。

    2)监听器:监听事件源对象的组件,事件源对象的状态变化就会触发监听器。

    3)注册监听器:将监听器与事件源进行绑定。

    4)响应行为:监听器听到事件源的转台变化是,所涉及的功能代码。(一般由程序员编写)

二、监听器有哪些?

        监听器可以按照两个维度进行划分:

    1)第一维:按照被监听的对象划分:ServletRequest域、HttpSession域和ServletContext域。

    2)第二维:按照监听的内容划分:监听域对象的创建与销毁、监听域对象的属性变化。

三、监听三大域对象的创建与销毁的监听器

        1.ServletContextListener监听器:监听ServletContext域对象的创建与销毁。

            1)ServletContext域对象的生命周期:

                创建:服务器启动时;

                销毁:服务器关闭;

        2.编写监听器:

            ①编写监听器类实现ServletContextListener接口。

            ②重写监听器的contextInitialized(ServletContextEvent sce)和contextDestroyed(ServletContextEvent sce)方法。

            ③在web.xml中进行配置,即注册监听器。

简单的监听器类

package listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyServletContextListtener implements ServletContextListener{

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		System.out.println("监听器销毁");
		
	}

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		//获取被监听的对象:ServletContext
		ServletContext servletContext = sce.getServletContext();
		//也是获得被监听的对象:是通用的方法
		Object source = sce.getSource();
		System.out.println("监听器初始化");
		
	}

}

 在web.xml中注册监听器:

<!-- 注册监听器 -->
  <listener>
  	<display-name>MyListener</display-name>
  	<listener-class>listener.MyServletContextListtener</listener-class>
  </listener>

    3.ServletContextListener监听器的主要作用:

        1)初始化的工作:初始化对象、初始化数据(如:加载驱动、创建数据库连接、连接池的初始化等);

        2)加载初始化的配置文件:  如spring的配置文件;

        3)任务调度(定时器Timer/TaskTimer):监听某项行为定时执行相应功能;

 



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值