监听器

1. 基本概念

  • 事件源:要监听的对象(request,session,servletContext)
  • 监听器:用来监听事件源发生改变的对象
  • 注册监听器:将监听器和事件源绑定的过程

2. 本质上是观察者模式

什么是观察者模式?详细内容请查看。。

3. 创建方式

首先要新建一个XXXListener的实现类
在这里插入图片描述

  • 基于web.xml
    在这里插入图片描述
listener-class里面是XXXListener接口实现类的全限定类名
  • 基于注解
    在这里插入图片描述

3. 分类(共8种):

第一类监听作用域的创建和销毁):

  • ServletRequestListener:用于监听request作用域的创建和销毁。
    当请求进入servlet时request对象创建,当响应结束后request对象销毁

  • HttpSessionLIstener:用于监听session作用域的创建和销毁的。
    HttpServletRequest.getSession()方法第一次被调用的时候,session对象被创建。当session对象意外关闭或者session失效(默认30分钟)或者sessio强制关闭时,session对象销毁

  • ServletContextListener:用于监听servletContext作用域的创建和销毁。
    应用启动时开始创建,应用停止时销毁
    第二类监听作用域中值的创建和销毁):

  • ServletRequestAttributeListener:监听request作用域中值的创建,修改和删除
    方法:attributeAdded():监听到创建值的时候调用该方法
    attributeRemoved():监听到删除值的时候调用该方法
    attributeReplaced():监听到修改值的时候调用该方法

  • HttpSessionAttributeListener:监听session作用域中值的创建,修改和删除
    方法同上

  • ServletContextAttributeListener:监听servletContext作用域中值的创建,修改和删除
    第三类用于监听session中的数据状态和绑定的情况

  • HttpSessionBindingListener 监听某类型的对象在session中绑定或移除

  • HttpSessionActivationListener:监听session中的对象活化或者钝化

活化:反序列化(对象从硬盘到内存中)
钝化:序列化(对象从内存保存到硬盘上)

需要注意的是:第三类不需要配置,一般创建在实体类上
例子:
在这里插入图片描述
在这里插入图片描述
浏览器输入
http://localhost:tomcat端口号/项目/bind.do?flag=1
控制台打印:

绑定了

浏览器输入
http://localhost:tomcat端口号/项目/bind.do?flag=2
控制台打印:

解绑了

在这里插入图片描述
在context.xml中写如下这段

<!-- maxIdleSwap为session1分钟钝化 -->
    <Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
        <Store className="org.apache.catalina.session.FileStore" directory="d:/session"/>
    </Manager>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值