servlet--监听器

来源:互联网 发布:java if else语句 编辑:程序博客网 时间:2024/06/16 12:19

什么是监听器?

所谓监听器就是指对整个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>
原创粉丝点击