监听器
Posted qq628b229e2808e
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监听器相关的知识,希望对你有一定的参考价值。
代理设计模式
当某一个对象发生某一个事件时,通知另一个对象,让另一个对象做某事
????代理设计模式步骤
- 定义好协议(接口)
- 遵守协议(实现接口)
- 成为代理
- 调用代理方法
监听器的内部使用的就是代理模式
监听器简介
- 能监听某个对象的状态变化的组件
- 监听域对象的变化
????监听器相关的概念
- 事件源:被监听的对象
- request
- session
- servletContext
- 监听器:监听事件源的对象
- 8个监听器
- 注册监听器:监听器与事件源相绑定
- 响应行为:监听到事件源变化时,去做什么事情
监听器划分
- 三个监听域对象的创建与销毁
- ServletContextListener
- HttpSessionListener
- ServletRequestListener
- 三个监听域对象当中属性变化
- ServletContextAttributeListener
- HttpSessionAttributeListener
- ServletRequestAttributeListener
域监听器
ServletContextListener
- 监听ServletContext域的创建与销毁的监听器ServletContextListener
- ServletContext域生命周期
- 服务器启动创建
- 服务器关闭销毁
- 监听器的编写步骤
- 编写一个监听器类去实现监听器
ServletContextListener
接口 - 覆盖监听器的方法
public class ServletContextListenerTest implements ServletContextListener
public void contextInitialized(ServletContextEvent servletContextEvent)
System.out.println("Servlet创建");
public void contextDestroyed(ServletContextEvent servletContextEvent)
System.out.println("Servlet销毁");
- 需要在
web.xml
中进行配置
<?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>com.bntang666.ServletContextListenerTest</listener-class>
</listener>
</web-app>
- 作用
- 初始化的工作:初始化对象、初始化数据、加载数据库驱动、连接池的初始化
- 加载一些初始化的配置文件
- 任务调度
HttpSessionListener
- 监听HttpSession域的创建与销毁的监听器HttpSessionListener
- HttpSession的生命周期
- 第一次调用request.getSession时创建
- 服务器关闭、session过期、手动销毁
- 编写步骤
- 同上
- 运用场景
- 记录访问人数
ServletRequestListener
- 监听ServletRequest域创建与销毁的监听器ServletRequestListener
- ServletRequest的生命周期
- 创建:每一次请求都会创建request
- 销毁:请求结束
Session中对象存储监听
- 一个对象存储到session当中的几种状态
- 绑定状态:就一个对象被放到session域中
- 解绑状态:就是这个对象从session域中移除了
- 钝化状态:是将session内存中的对象持久化(序列化)到磁盘
- 活化状态:就是将磁盘上的对象再次恢复到session内存中
以上是关于监听器的主要内容,如果未能解决你的问题,请参考以下文章