《【Servlet】Listener监听器.docx》由会员分享,可在线阅读,更多相关《【Servlet】Listener监听器.docx(4页珍藏版)》请在金锄头文库上搜索。
1、【Servlet】Listener监听器监听器的使用 * 监听器的使用: * 作用: * 监听作用域对象request、session、application的创建、销毁和内容的改变 * 使用: * 创建一个实现了指定接口的java类 * 监听request-ServletRequestListener 监听request对象的创建和销毁 * requestInitialized(ServletRequestEvent sre)/创建 * requestDestroyed(ServletRequestEvent sre)/销毁 * 注意: * 形参可以获取监听的request对象 * sre.
2、getServletRequest(); * 监听request-ServletRequestAttributeListener 监听request作用域数据的变更。 attributeAdded(ServletRequestAttributeEvent srae) * attributeRemoved(ServletRequestAttributeEvent srae) * attributeReplaced(ServletRequestAttributeEvent srae) * 注意:形参可以获取被监听的数据 * srae.getName() 获取监听数据的键 * srae.getVal
3、ue() 获取监听数据的值 * 监听session-HttpSessionListener 监听session的创建和销毁 * sessionCreated(HttpSessionEvent se) 创建 * sessionDestroyed(HttpSessionEvent se) 销毁 * 注意:形参可以获取被监听的session对象 * se.getSession(); * 监听session-HttpSessionAttributeListener 监听session数据的变更 * attributeAdded(HttpSessionBindingEvent event) * attr
4、ibuteRemoved(HttpSessionBindingEvent event) * attributeReplaced(HttpSessionBindingEvent event) * 注意:形参可以获取被监听的数据 * event.getName() 获取数据的键名 * event.getValue() 获取数据的值 * 监听application-ServletContextListener 监听application对象的初始化和销毁 * contextInitialized(ServletContextEvent sce) 初始化 服务器启动 * contextDestroye
5、d(ServletContextEvent sce) 销毁 服务器关闭 * 注意: * 形参可以获取当前application对象。 * sce.getServletContext(); 监听application-ServletContextAttributeListener 监听数据的变更 attributeAdded(ServletContextAttributeEvent event) * attributeRemoved(ServletContextAttributeEvent event) * attributeReplaced(ServletContextAttributeEve
6、nt event) * 注意: * 形参可以获取当前监听的数据 * event.getName() 获取数据的键名 * event.getValue() 获取数据的值 * 在web.xml中配置监听器类 * com.bjsxt.listener.MyListener 案例: 统计当前在线人数。 统计网页浏览器次数。package com.bjsxt.listener;import javax.servlet.ServletContextAttributeEvent;import javax.servlet.ServletContextAttributeListener;import javax
7、.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.ServletRequestAttributeEvent;import javax.servlet.ServletRequestAttributeListener;import javax.servlet.ServletRequestEvent;import javax.servlet.ServletRequestListener;import javax.servlet.http.HttpSessionAt
8、tributeListener;import javax.servlet.http.HttpSessionBindingEvent;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;/* * 监听器的使用 */public class MyListener implements ServletRequestListener,ServletRequestAttributeListener,HttpSessionListener,HttpSessionAttributeL
9、istener,ServletContextListener,ServletContextAttributeListener /request对象销毁 Override public void requestDestroyed(ServletRequestEvent sre) System.out.println(我被销毁了); /request对象创建 Override public void requestInitialized(ServletRequestEvent sre) System.out.println(我被创建了); /监听request作用域数据的添加 Override p
10、ublic void attributeAdded(ServletRequestAttributeEvent srae) System.out.println(request中增加了一条数据-+srae.getName()+:+srae.getValue(); Override public void attributeRemoved(ServletRequestAttributeEvent srae) / TODO Auto-generated method stub Override public void attributeReplaced(ServletRequestAttribute
11、Event srae) / TODO Auto-generated method stub /*-*/ /监听session的创建 Override public void sessionCreated(HttpSessionEvent se) System.out.println(session被创建了); /监听session的销毁 Override public void sessionDestroyed(HttpSessionEvent se) System.out.println(session被销毁了); /监听session数据的表更 Override public void attributeAdded(HttpSessionBindingEvent event) System.out.println(session中增加了一条数据+event.getName()+:+event.getValue(); Override public void attributeRemoved(HttpSessionBindingEvent event) / TODO Auto-generated method stub Override public void attributeReplaced(HttpSessionBindingEvent event) / TODO Aut