学习记录19
Servlet规范扩展——监听器接口
一、监听器接口
1、介绍
- Servlet规范下接口,共有8个接口;在Tomcat存在servlet-api.jar包
- 监听器接口需要由开发人员亲自实现
- 监听器接口用于监控【作用域对象生命周期变化时刻】以及【作用域对象共享数据变化时刻】
2、作用域对象
- 服务端内存中,为两个Servlet之间提供数据共享方案的对象,被称为【作用域对象】
- Servlet规范下作用域对象
- ServletContext: 全局作用域对象
- HttpSession: 会话作用域对象
- HttpServletRequest: 请求作用域对象
3、监听器接口实现类开发规范
- 根据监听的实际情况,选择对应监听器接口进行实现
- 重写监听器接口声明【监听事件处理方法】
- 在web.xml文件将监听器接口实现类注册到Http服务器
二、接口举例
1、ServletContextListener接口
- 可以合法地检测全局作用域对象的共享数据变化时刻
- 监听事件的处理方法
public void contextInitlized()
:被Http服务器在初始化时触发调用public void contextDestory()
:被Http服务器在销毁时触发调用
2、ServletContextAttributeListener接口
- 合法的检测全局作用域对象的共享数据变化时刻
- 监听事件的处理方法
public void contextAdd()
:在全局作用域对象添加共享数据public void contextReplaced()
:在全局作用域对象更新共享数据public void contextRemove()
:在全局作用域对象删除共享数据
- 【注】全局作用域对象共享数据变化时刻
ServletContext application = request.getServletContext();
application.setAttribute("key1",100); //新增共享数据
application.setAttribute("key1",200); //更新共享数据
application.removeAttribute("key1"); //删除共享数据
三、提高程序运行速度
1、JDBC添加数据时
- 添加一条数据,比较费时:12~13ms
- 在JDBC中,Connection的创建与销毁最浪费时间
2、使用监听接口,在全局作用域对象中创建JDBC的Connection
- 添加一条数据时间:2~3ms