什么是监听器?
所谓监听器就是指对整个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>

被折叠的 条评论
为什么被折叠?



