简介 JavaWeb 中的监听器
为了在Servlet/JSP应用程序中使用事件驱动编程(Event-Driven Programming),Servlet/JSP提供了一套监听器的接口和类。
简单的说,监听器就是能够在某种操作发生时,检测到这种操作的发生,并且执行一定动作的操作。
Servlet/JSP应用提供以下两种方式来创建一个监听器:
使用
WebListener
注解(简单易用,直接实现对应的Listener接口即可):@WebListener public class _ListenerClass_ implements _ListenerInterface_ { }
在配置文件中配置
listener
元素:<lisenter> <listener-class>_fully-qualified listener class_</listener-class> </lisenter>
常见的监听器以及他们所监听的事件:
I. Servlet Context监听器:
ServletContextListener:监听ServletContext初始化或者销毁操作
- ServletContext初始化时:
void contextInitialized (ServletContextEvent event);
- ServletContext销毁时:
void contextDestroyed (ServletContextEvent event);
- ServletContext初始化时:
ServletContextAttributeListener:监听ServletContext的属性的添加、删除或者替换
- ServletContext属性添加时:
void attributeAdded (ServletContextAttributeEvent event);
- ServletContext属性删除时:
void attributeRemoved (ServletContextAttributeEvent event);
- ServletContext属性替换时:
void attributeReplaced (ServletContextAttributeEvent event);
- ServletContext属性添加时:
II. Session监听器:
HttpSessionListener:监听HttpSession的创建或销毁
- HttpSession创建时:
void sessionCreated (HttpSessionEvent event);
- HttpSession销毁时:
void sessionDestroyed (HttpSessionEvent event);
- HttpSession创建时:
HttpSessionAttributeListener:监听HttpSession的属性的添加、删除或者替换
- HttpSession属性添加时:
void attributeAdded (HttpSessionBindingEvent event);
- HttpSession属性删除时:
void attributeRemoved (HttpSessionBindingEvent event);
- HttpSession属性替换时:
void attributeReplaced (HttpSessionBindingEvent event);
- HttpSession属性添加时:
HttpSessionActivationListener:分布式应用中,Session可能被序列化或者被激活
- Session属性激活时:
void sessionDidActivate (HttpSessionEvent event);
- Session属性序列化时:
void sessionWillPassivate (HttpSessionEvent event);
- Session属性激活时:
HttpSessionBindingListener:监听是否有Session进行了绑定或者取消绑定
III. ServletRequest监听器:
ServletRequestListener:监听ServletRequest的创建和销毁(可用来检测一个请求所花费的时间)
- 当发起一个HTTP请求时:
void requestInitialized (ServletRequestEvent event);
- 当ServletRequest被销毁时:
void requestDestroyed (ServletRequestEvent event);
- 当发起一个HTTP请求时:
ServletRequestAttributeListener:监听ServletRequest的添加、删除或者修改
- 当ServletRequest的某个属性被添加时:
void attributeAdded (ServletRequestAttributeEvent event);
- 当ServletRequest的某个属性被删除时:
void attributeRemoved (ServletRequestAttributeEvent event);
- 当ServletRequest的某个属性被替换时:
void attributeReplaced (ServletRequestAttributeEvent event);
- 当ServletRequest的某个属性被添加时:
本文链接:
https://www.nosuchfield.com/2015/12/01/introduction-to-JavaWeb-in-the-listener/
版权声明:
本博客所有文章均采用
CC BY-NC-SA 4.0 许可协议,转载请注明出处!