Javaweb——监听器


一、监听器的概述

1. 监听器是什么

  • 是一个实现了特定接口的Java类;
  • 用来监听另一个 Java类的方法调用或者属性的改变;
  • 当被监听对象发生了上述事件后,监听器某个方法将会立即被执行。

2. 监听器用途

  • 用来监听其他对象的变化,主要用在图形化界面开发上。

3. 监听器的术语

  • 事件源:被监听对象(汽车);
  • 监听器:监听的对象(报警器);
  • 事件源和监听器的绑定:(在汽车上安装报警器);
  • 事件:事件源对象的改变(踹了汽车一脚)——主要功能获得事件源对象。

二、监听器的入门

在这里插入图片描述

三、Servlet 中的监听器

1. Servlet 中监听器简介

  • 在 Servlet 中定义了多种类型的监听器,他们主要用于监听的事件源分别是:
    • ServletContext
    • HttpSession
    • ServletRequest

2. Servlet 中监听器的分类

  • 监听三个域对象的创建和销毁的监听器(三个);
  • 监听三个域对象的属性变更(属性添加、移除、替换)的监听器(三个);
  • 监听HttpSession中JavaBean的状态改变(钝化、活化、绑定、解除绑定)的监听器(两个);

四、监听三个域对象的创建和销毁的监听器(一)——ServletContextListener 监听器的使用

1. ServletContextListener 监听器作用

  • 用来监听 ServletContext 域对象的创建和销毁的监听器;

2. ServletContext 创建和销毁

  • ServletContext 创建:服务器启动的时候,为每个web应用创建单独的ServletContext 对象;
  • ServletContext 销毁:服务器关闭的时候,或者项目熊web服务器移除的时候;

3. ServletContextListener 监听器的方法

  • 监听 ServletContext 对象创建:contextInitialized(ServletContextEvent sce)
  • 监听 ServletContext 对象销毁:contextDestroyed(ServletContextEvent sce)

4. 编写监听器

  • 监听器代码
    在这里插入图片描述
  • 配置监听器
    在这里插入图片描述

5. ServletContextListener 企业用途

  • 加载框架的配置文件:
    Spring框架提供了一个核心监听器 ContextLoaderListener;
  • 定时任务调度;

五、监听三个域对象的创建和销毁的监听器(二)——HttpSessionListener 监听器的使用

1. HttpSessionListener 监听器作用

  • 用来监听 HttpSession 对象的创建和销毁;

2. HttpSession 的创建和销毁

  • 创建
    • 服务器端第一次调用 getSession() 方法时创建
  • 销毁
    • Session 过期,默认过期时间为30分钟;
    • 非正常关闭服务器;
    • 手动调用 session.invalidate();

3. HttpSessionListener 监听器的方法

  • 监听 HttpSession 对象创建:sessionCreated(HttpSessionEvent se)
  • 监听 HttpSession 对象销毁:sessionDestroyed(HttpSessionEvent se)

4. 编写监听器

  • 编写监听器
    在这里插入图片描述
  • 配置监听器
    在这里插入图片描述

5. 几个问题

在这里插入图片描述

六、监听三个域对象的创建和销毁的监听器(三)——ServletRequestListener 监听器的使用

1. ServletRequestListener 监听器作用

  • 用来监听 ServletRequest 对象的创建和销毁;

2. ServletRequest 的创建和销毁

  • 创建:从客户端向服务器发送一次请求,服务器就会创建 request 对象;
  • 销毁:服务器做出了响应之后,request 对象就销毁了;

3. ServletRequestListener 监听器的方法

  • 监听 ServletRequest 对象创建:requestInitialized(ServletRequestEvent sre)
  • 监听 ServletRequest 对象销毁:requestDestroyed(ServletRequestEvent sre)

4. 编写监听器

  • 编写监听器
    在这里插入图片描述
  • 配置监听器
    在这里插入图片描述

5. 几个问题

在这里插入图片描述

七、监听三个域对象的属性变更的监听器

1. ServletContextAttributeListener

  • 监听 ServletContext 对象中的属性变更(属性添加、移除、替换)的监听器;

2. HttpSessionAttributeListener

  • 监听 HttpSession 对象中的属性变更(属性添加、移除、替换)的监听器;

3. ServletRequestAttributeListener

  • 监听 ServletRequest 对象中的属性变更(属性添加、移除、替换)的监听器;

八、监听HttpSession 中Java类状态改变的监听器

  • 保存在 Session 域中的 Java 类可以有多种状态:
    • 从 session 中解除绑定;
    • 随 session 对象持久化到一个存储设备中(钝化);
    • 随 session 对象从一个存储设备中恢复(活化);
  • Servlet 定义了两个特殊的监听的接口,来帮助 Java 类了解自己在 session 域中的状态:
    • HttpSessionBindingListener 接口;
    • HttpSessionActivationListener 接口;
  • 实现这两个接口的类不需要在 web.xml 中进行配置;

1. HttpSessionBindingListener

  • 用来监听 Java类 在 HttpSession 中的绑定和解除绑定的监听器;

2. HttpSessionActivationListener

  • 用来监听 HttpSession 中 Java类 的钝化和活化的监听器;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值