WEB27_Listener

Listener介绍:

监听器,负责监听一些浏览器与服务器的动作,来完成某些事情

监听的参与者:

事件源:触发监听器

监听器:监听事件源    6+2:6个监听器+两个监听器

绑定:负责绑定监听器与事件源

响应事件:监听器被触发后的动作

Listener类型:

6个监听器:

分类一:按照监听的对象划分:ServletContext域,HttpSession域,ServletRequest域

分类二:按照监听的范围划分:域的创建与销毁,域的内容的改变

开始敲代码

一.记住各个域的生命周期有利于理解该在什么时候使用那个监听器.

二.步骤:1.实现监听器接口 2.覆盖监听器方法 3.在web.xml中使用<listener>标签注册监听器

创建与销毁的监听器

ServletContext:

ServletContext生命周期:

创建:服务器开启

销毁:服务器关闭

1.实现监听器接口 2.覆盖监听器方法

3.在web.xml中使用<listener>标签注册监听器

Servlet测试:

结果:

ServletContext监听器的主要作用:

1.初始化工作:初始化对象与数据-----加载数据库驱动,连接池初始化

2.加载一些初始化的配置文件:比如Spring的配置文件

3.任务调度:使用Timer与TimerTask    比如,服务器每24小时打印一次日志

另外两个HttpSession域与ServletRequest域的创建与销毁的监听器也是如此步骤.

只是要注意一下生命周期:

HttpSession:创建:第一次调用request.getSession() 销毁:服务器关闭,session到期,手动调用invalidate()

ServletRequest:创建:每次请求开始  销毁:请求结束

 

域内容修改的监听器

1.实现监听器接口 2.覆盖监听器方法

3.在web.xml中使用<listener>标签注册监听器

略..

Servlet测试:

结果:略....

 

剩下的两种监听器:与Session域绑定的对象有关的监听器(对象感知监听器)

注意:这两种监听器都是用到要绑定的对象上的

绑定到Session域的对象的几种状态:

绑定状态:一个对象将被加入Session域

解绑状态:一个对象将被从Session域移除

钝化状态:对象从Session域持久化到磁盘上

活化状态:对象从磁盘恢复到Session域

第一个:HttpSessionBindingListener(绑定与解绑)

1.实现监听器接口 2.覆盖监听器方法

3.不需要注册

Servlet绑定测试:

结果:

第二个:HttpSessionActivationListener(钝化与活化)

1.实现监听器接口 2.覆盖监听器方法

3.不需要注册

我们可以通过在/WebRoot/META-INF文件夹下创建一个xml文件来控制钝化的时间与钝化的对象存储的位置

<?xml version="1.0" encoding="UTF-8"?>
<Context>
 <!-- maxIdleSwap:session中的对象多长时间不使用就钝化 -->
 <!-- directory:钝化后的对象的文件写到磁盘的哪个目录下  配置钝化的对象文件在												work/catalina/localhost/钝化文件 -->
 <Manager className="org.apache.catalina.session.PersistentManager" 																				maxIdleSwap="1">
  <Store className="org.apache.catalina.session.FileStore" directory="myFile" />
 </Manager>
</Context>

Servlet测试:

结果:

钝化的作用:可以作为优化服务器的一方面:通过钝化一些一段时间不用的Session来减少服务器的压力.

钝化的对象存在哪里?

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值