servlet--监听器

什么是监听器?

所谓监听器就是指对整个web环境的监听,主要监听三个对象的活动:
1.ServletContext: 对Servlet上下文对象监听
2.Session : 对Session对象监听
3.Request :对Request对象监听
对对象监听就是实现一系列的监听接口

对对象的监听

对ServletContext对象的监听

ServletContextListener:对整个Servlet上下文监听(启动、销毁)要在其监听处理程序中实现下面方法
public void contextInitalized(ServletContextEvent sce):上下文对象的初始化
public void contextDestroyed(ServletContextEvent sce):上下文对象的销毁
里面的参数是ServletContextEvent事件是在servlet对象创建时自动激活的事件
ServletContextAttributeListener:对Servlet上下文属性的监听
public void attributeAdded(ServletContextAttributeEvent scab):属性增加(setAttribute)
public void attributeRemoved(ServletContextAttributeEvent scab):属性删除(removeAttribute)
public void attributeReplaced (ServletContextAttributeEvent scab):属性替换(第二次设置同一属性) 里面的参数:ServletContextAttributeEvent事件:能取得属性的名称和内容

对Session对象的监听

HttpSessionListener:对session对象整体状况监听

public void sessionCreated(HttpSessionEvent se):
     session创建
public void sessionDestroyed(HttpSessionEvent se)
session销毁
HttpSessionEvent事件:getSession();
HttpSessionAttributeListener:对session的属性监听
public void attributeAdded(HttpSessionBindingEvent se):          属性增加
public void attributeRemove(HttpSessionBindingEvent se):        属性删除
public void attributeReplaced(HttpSessionBindingEvent se):         属性替换
HttpSessionBindingEvent事件:getName(); getValue() ; getSession();

简单的监听器实现

监听request,session,ServletContext对象的创建和销毁

public class OnlineListenner implements ServletContextListener,HttpSessionListener,ServletRequestListener{
    int count=0;
    @Override
    public void requestDestroyed(ServletRequestEvent arg0) {
        System.out.println("请求对象销毁.............");  
    }
    @Override
    public void requestInitialized(ServletRequestEvent arg0) {
        System.out.println("请求对象创建.............");  
    }
    @Override
    public void sessionCreated(HttpSessionEvent arg0) {
        System.out.println("session对象创建.............");
        count++;
        System.out.println("当前在线人数"+count);
    }
    @Override
    public void sessionDestroyed(HttpSessionEvent arg0) {
        System.out.println("session对象销毁.............");
        count--;
        System.out.println("当前在线人数:"+count);
    }
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("ServletContext对象销毁.............");  
    }
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        System.out.println("ServletContext对象创建.............");  
    }
}

web.xml

<!-- 配置监听器 -->
  <listener>
    <listener-class>com.kaner.servlet.OnlineListenner</listener-class>
  </listener>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值