Java EE中Listener

来源:互联网 发布:未来城网络黄金上市 编辑:程序博客网 时间:2024/05/11 17:06

在Java EE中,ServletContext、HttpSession、HttpServletRequest使得Java对象在浏览器中直接传播成为可能,与这三大对象相关的监听器在实际编程中也是有很大用处。

接触过Java AWT、Java Swing编程的都知道监听器其实就是某个事件触发之后的一个方法回调。基本上监听器也是AOP的编程思想的一个体现,Java EE中有八个规定的监听器,用来监听ServletContext、HttpSession、HttpServletRequest这三个对象的创建和销毁,以及在调用setAttribute(String name, Object value)、removeAttribute(String name)这些方法。

ServeltContextListener

这个接口的原型如下:
public interface ServletContextListener{  public void contextCreated(ServketContextEvent event);  public void destroyContext(ServletContextEvent event);}
其中contextCreated会再WEB容器装入WEB程序时进行调用,而contextDestroyed会再WEB容器卸载程序时进行调用。
该接口的使用案例,在Spring整合进WEB程序中有体现,Spring的核心IOC容器会再ServletContext初始化后,进行创建IOC容器,如果你想要在ServletContext初始化后做点什么,那么可以实现该监听器。

HttpSessionListener

这个接口的原型如下:
public interface HttpSessionListener{  public void sessionCreated(HttpSessionEvent event);  public void sessionDestroyed(HttpSessionEvent event);}
其中,当WEB容器创建HttpSession对象后,会调用sessionCreated方法,利用这个方法可以进行网站的在线人数统计(按照会话进行统计)。当HttpSession对象被销毁后,会调用sessionDestroyed方法。

ServletRequestListener

这个接口的原型如下:
public interface ServletRequestListener{  public void requestCreated(ServletRequestEvent event);  public void requestDestroyed(ServletRequestEvent event);}
其中,当WEB容器创建好HttpServletRequest对象后,会调用requestCreated方法;当HttpServletRequest对象被销毁后,会调用requestDestroyed方法。

ServletContextAttributeListener、HttpSessionAttributeListener、ServletContextAttributeListener

ServletContextAttributeListener、HttpSessionAttributeListener、ServletContextAttributeListener这三个监听器是用来监听属性的添加与删除的,它们的大致接口原型如下:
public XxxAttributeListener{  public void attributeAdded(xxxAttributeEvent event);  public void attributeReplaced(xxxAttributeEvent event);  public void attributeRemoved(xxxAttributeEvent event);}

上述六种基本的监听器,是Java EE监听器的基础。





0 0
原创粉丝点击