Java中的监听器

1、概念          Servlet中的listener的作用是通过监听一些工作的发生,listener在工作发生前后可以做一些必要的处置。   2、原理          简略知道便是工作源生成工作并将其发送至一个或多个监听器,监听器简略地等待,直到它收到一个工作。一旦工作被接受,监听器将处置这些工作并进行一些处置。listner监听的首要工作抽象的知道包括三种:ServletContex http://www.360123.info/linked/20130426.do tEvent、ServletRequestEvent、 HttpSessionEvent。   3、八种监听器   ServletContextEvent对Servlet上下文进行监听   监听器 监听工作 相关方法 ServletContextListener ServletContextEvent contextDestroyed(ServletContextEvent sce)  ServletContext方针销毁时触发 (容器销毁时销毁ServletContext方针) contextInitialized(ServletContextEvent sce)  ServletContext方针创建时触发 (容器加载时创建ServletContext方针) ServletContextAttributeListener ServletContextAttributeEvent (继承 ServletContextEvent) attributeAdded(ServletContextAttributeEvent event) ServletContext方针添加特色时触发 ( request.getSession().getServletContext().setAttribute("person1","Jim"); ) attributeRemoved(ServletContextAttributeEvent event) ServletContext方针移除特色时触发 ( request.getSession().getServletContext().removeAttribute("person1"); ) attributeReplaced(ServletContextAttributeEvent event) ServletContext方针从头设定特色值时触发 ( request.getSession().getServletContext().setAttribute("person1","Green"); request.getSession().getServletContext().setAttribute("person1","Green1"); )   ServletRequestEvent对客户端央求进行监听   监听器 关于工作 相关方法 ServletRequest ListenerServletRequestEvent requestInitialized(ServletRequestEvent sre) 客户端央求宣告时触发 requestDestroyed(ServletRequestEvent sre) 客户端央求结束时触发   ServletRequestAttributeListener ServletRequestAttributeEvent (继承 ServletRequestEvent) attributeAdded(ServletRequestAttributeEvent srae) 客户端央求方针添加特色时触发( request.setAttribute("person1","Jim"); ) attributeRemoved(ServletRequestAttributeEvent srae) 客户端央求方针移除特色时触发( request.removeAttribute("person1"); ) attributeReplaced(ServletRequestAttributeEvent srae) 客户端央求方针从头设定特色值时触发( request.setAttribute("person1","Green"); request.setAttribute("person1","Green1"); )   ServletRequestEvent对Http会话监听   监听器 监听工作 相关方法 HttpSessionListener HttpSessionEvent sessionCreated(HttpSessionEvent se) session方针创建时发生,即浏览器页面翻开时 sessionDestroyed(HttpSessionEvent se) session方针销毁时触发,即浏览器关闭或session过期   HttpSessionAttributeListener HttpSessionBindingEvent (继承 HttpSessionEvent) attributeAdded(HttpSessionBindingEvent event) session方针添加特色时触发( session.setAttribute("person1","Jim"); ) attributeRemoved(HttpSessionBindingEvent event) 客户端央求方针移除特色时触发( session.removeAttribute("person1"); ) attributeReplaced(HttpSessionBindingEvent event) session方针从头设定特色值时触发( session.setAttribute("person1","Green"); session.setAttribute("person1","Green1"); ) HttpSessionBindingListener( 这个listener是一个比较格外的listener,它不需要在web.xml中进行配备。 此listener需要存放于session中的方针完结此接口,才华被照应。 ) HttpSessionBindingEvent (继承 HttpSessionEvent) valueBound(HttpSessionBindingEvent event) 此方法通过HttpSession的void setAttribute(String name, Object object)被调用。其间object需要完结HttpSessionBindingListener接口。 valueUnbound(HttpSessionBindingEvent event) 此方法通过HttpSession的void removeAttribute(String name)或许HttpSession失效时被调用。其间nam对应的object需要完结HttpSessionBindingListener接口。 HttpSessionActivationListener ( 这个接口一般和Servlet容器的集群有联络,它监听的是同一个session转移至不一样的JVM的工作。) HttpSessionEvent sessionDidActivate(HttpSessionEvent se) session方针现已变成有用的情况的时触发 sessionWillPassivate(HttpSessionEvent se) session方针行将变成无效情况的时触发

标签