20210407—JavaWeb—019.监听器接口

本文介绍了Servlet规范中的监听器接口,包括ServletContextListener、ServletContextAttributeListener等,用于监控作用域对象生命周期和数据变化。同时阐述了通过监听器接口优化程序运行速度,如在全局作用域对象中创建JDBC的Connection来减少数据添加时间。
摘要由CSDN通过智能技术生成

学习记录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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值