当前课程知识点:Web后端开发技术 > 第7章 Filter和Listener > 7.2 监听器 > 7.2.1.1与ServletContext相关的监听器
同学们好
欢迎回来继续学习web后端开发技术
在这一小节当中
我们将学习与servletContext相关
的监听器
在web容器工作过程当中有很多关键
的事件发生
比如web应用对象的创建和销毁
会话对象的创建和销毁
请求对象的创建和销毁
那么这些事件的发生对于开发者来说
是非常重要的
你比如当一个会话对象创建的时候
我们可以通过它的事件来记录当前有
多少人在访问这个网站
从而实现统计访问网站在线人数的
功能
而这些事件对于用户来说是透明的
servlet API提供了大量有关监听
这些事件的接口
我们在开发当中
通过实现这些接口
也就是说实现监听器
当容器发生相关事件的时候
由容器来调用相关的接口
从而来实现某些特殊的功能
当容器发生事件的时候
它会把一个事件对象传递给监听器
在监听器内通过事件对象来获得当前
是哪个对象在发生变化
那么
触发事件有这么两种情况
第1种情况
web应用或者是会话
或者是请求这三类对象的创建和销毁
他们会产生事件
第2类事件是web应用
会话请求
这三大作用域内属性的变化
包括添加属性
修改属性和删除属性
会产生事件
对应的监听器就有三类
第1类是与web应用相关的监听器
第2类
与会话相关的监听器
第3类
与请求相关的监听器
当相应的事件发生的时候
由容器调用相关的监听器
接口
那么也就是说对应web应用
相关事件发生的时候
由容器调用servlet相关的监听接口
当会话相关的事件发生的时候
由容器调用与会话相关的监听接口
当请求相关事件发生的时候
由容器调用与请求相关的监听接口
下面我们将会逐一来介绍这些监听接口
第1个
与servletContext相关的监听器
它里面包含了两个接口
其中第1个接口是servletContextListener接口
它的作用是去监听servletContext
对象的创建和销毁
那么这个接口包含两个方法
第1个方法叫做ContextInitialized
相当于初始化这样一个意思
第2个是ContextDestroyed用于销毁
那么也就是说
对于第1个方法是当ServletContext
这个对象被创建的时候
由容器来调用这个方法
第2个
当ServletContext对象被销毁的时候
由容器去调用这个方法
那么在刚才的两个方法当中
我们注意到有这样一个类叫
servletContextEvent类
它代表的就是发生的事件
那么这个类它里面有一个方法叫做
getServletContext
它的作用就是返回
servletContext对象
这个代码我们看一下
这里面有一个注解
叫@webListener
表明当前这是一个监听器
它实现了servletContextListener接口
这个接口刚才我们已经提到了
它有两个方法
当servletContext对象被创建的
时候
那么这个方法将会被调用
当servletContext对象被销毁的时候
那么这个方法将会被调用
实现监听器的步骤
可以分为这么两步
第1步定义监听器类
实现监听器接口的所有的方法
第2步
通过注解或者web xml声明这个类为
Listener
与servletContext相关的接口
还有一个那么这个接口叫做
servletContextAttributeListener接口
它的作用是监听
servletContext的范围内属性的创建
修改和删除
那么这个接口对应于刚才我们提到的
创建
修改和删除
有三个方法
第1个方法
我们看到这个名字叫attributeAdded
用于添加的
也就是说当属性存入application
这application指的就是servletContext
由容器调用这个方法
第2个是attributeRemoved
当属性从application中
删除的时候
由容器调用这个方法
下边是replace
当application当中某个属性值
作了修改的时候
由容器调用这个方法
这三个方法我们理解起来比较简单
在这三个方法当中
有一个servletContextAttributeEvent类
代表的是相应的事件
那么在这个类当中包含了两个方法
第1个方法是getName用于
获取
改变的属性名
第2个方法叫做getValue
获取那个值
那么对于添加的来说
它是获取已经被添加的值
对于删除来讲
它是指被删除的值
如果是修改的话
我们知道修改有一个新值有一个旧值
这里面指的就是原来的旧值
好
我们今天的课程就讲到这里
再见
-1.0 导学
--1.0.1 导学
-1.1 Web应用开发概述
--1.1.3 测试
-1.2 准备Java Web应用开发环境
--1.2.2 测试
-1.3 任务实现:Hello World Web项目
--1.3.2 测试
-1.4 小结
--1.4.1 小结
-本课程所有代码
--课程参考代码
-2.0 导学
--2.0.1 导学
-2.1 Servlet概述
--2.1.3 测试
-2.2 创建Servlet
--2,2,3 作业
-2.3 Servlet应用
--2.3.4 测试
-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)
--2.4.3 测试
-2.5 ServletConfig接口
-2.6 ServletContext接口
-2.7 HttpServletRequest接口
--2.7.5 测验
-2.8 HttpServletResponse接口
--2.8.3 测试
-2.9 任务实现:某高校毕业生信息发布系统-简历添加
--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加
-2.10 小结
-动画演示:Java Web应用服务器处理客户端请求的过程
-3.0 导学
--3.0.1 导学
-3.1 Cookie技术
--3.1.3 测试
-3.2 Session技术
--3.2.2 Session技术-Session技术应用购物车
--3.2.3 测试
-3.3 URL重写与隐藏表单域
--3.3.2 测试
-3.4 任务实现:某高校毕业生信息发布系统-简历修改
--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改
-3.5 小结
--3.5.1 小结
-4.0 导学
-4.1 jsp概述
--4.1.2 测试
-4.2 脚本元素
--4.2.2 测试
-4.3 指令元素
--4.3.2 测试
-4.4 动作元素
--4.4.3 测试
-4.5 内置对象
--4.5.3 测试
-4.6 JavaBean
--4.6.3 测试
-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)
--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)
-4.8 小结
--4.8.1 小结
-5.0 导学
--5.0.2 测试
-5.1 el语法
--5.1.2 测试
-5.2 el隐含对象
--5.2.2 测试
-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.2 测试
-5.4 小结
--5.4.1 小结
-6.0 导学
--6.0.2 测试
-6.1 核心标签库
--6.1.5 测试
-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.2 测试
-6.3 小结
--6.3.1 小结
-7.0 导学
--7.0_导学
-7.1 过滤器
--7.1.3 测试
-7.2 监听器
--7.2.1.1与ServletContext相关的监听器
--7.2.4 测试
-7.3 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.2 测试
-7.4 小结
--7.4.1小结
-8.0 导学
--8.0_导学
-8.1 JDBC API
--8.1.2 测试
-8.2 JDBC API访问MySQL基本步骤
--8.2.2 测试
-8.3 任务实现:某高校毕业生信息发布系统-注册与登录
--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)
--8.3.2 测试
-8.4 小结
--8.4.1小结
-9.0导学
--9.0导学
-9.1 技术准备
--9.1.5 测试.
-9.2 系统设计
-9.3 系统实现
-9.4 小结
--9.4.1小结

