Listener简单概述

11 篇文章 0 订阅

Listener:
 监听器,它用于监听Java Web程序中的事件
 Listener主要对Session,request,context进行监控

Listener的使用需要去实现相应的Listener接口,在应该触发Listener事件的时候,Tomcat会自动调用Listener方法
SessionListener:
public class SessionListener implements HttpSessionListener {

 @Override
 public void sessionCreated(HttpSessionEvent se) {
  //这个方法在Session被创建的时候会调用
  HttpSession session = se.getSession();
  System.out.println("创建一个session:"+session);
  
 }

 @Override
 public void sessionDestroyed(HttpSessionEvent se) {
  //session被销毁的时候调用这个方法
  HttpSession session = se.getSession();
  System.out.println("销毁了一个session:"+session);
 }
}
接下来在web.xml当中要做相应的配置
 <listener>
   <listener-class>com.xiaoxie.listener.SessionListener</listener-class>
 </listener>
<listener>标签一般是配置在<servlet>标签之前
在一个web.xml当中是可以配置多个listener的
Listener分类:
 1,监听对象的创建和销毁
 HttpSessionListener,ServletContextListener,ServletRequestListener分别用于监听Session,Context,Request的创建和销毁
 HttpSessionListener:
  sessionCreated(HttpSessionEvent se)在创建session时会执行
  sessionDestoryed(HttpSessionEvent se)在session超时或调用session.invalidate()时会执行
 ServetContextListener:
  Context代表了当前的应用程序
  contextInilitialized(ServletContextEvent event):服务器启动或热部署war包时执行
  contextDestroyed(ServletContextEvent event):服务器关闭或者只关闭web时执行
 ServletRequestListener:
  requestInitialized(ServletRequestEvent event):每次请求都会执行
  requestDestoryed(ServletRequestEvent event):request处理完毕自动销毁前执行
  注意:如果请求的html中含有多个图片的话则会在一次html请求中触发多次request事件

Java中类是可以实现多接口的,这样的话则一个类可以实现多个Listener接口

 2,监听对象的属性变化:
 这个是用来监听Session,Context,Request的属性变化的,接口名称格式是xxxAttributeListener
 HttpSessionAttributeListener,ServletContextAttributeListener,ServletRequestAttributeListener
 当对象中添加,更新,移除属性时会调用类似如下的方法
 attributeAdded(),attributeReplaced(),attributeRemoved()
 
 3,监听Session内的对象
 它有两种Listener,分别是HttpSessionBindingListener和HttpSessionActivationListener
 HttpSessionBindingListener:
  valueBound(HttpSessionBindingEvent event):当对象被放到Session中去的时候会执行
  valueUnbound(HttpSessionBindingEvent event):当对象被从Session中移除的时候会执行
 HttpSessonActivationListener:
  sessionWillPassivate(HttpSessionEvent se):在Session中内容钝化时执行
  注意:钝化就是指的服务器关闭的时候会把Session中的内容存到硬盘中去
  sessionDidActivate(HttpSessionEvent se):在服务器重新启动时,session对象被重新加载的时候

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值