Java Web(Listener篇):简介
目录
(一)监听 Session、request、context 的创建与销毁。
Listener 简介
监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。
常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等。
Listener 导图
监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图:
Listener 分类
1)按监听的对象划分:
- ServletContext对象监听器(ServletContextListener)
- HttpSession对象监听器(HttpSessionLister)
- ServletRequest对象监听器(ServletRequestListener)
2) 按监听的事件划分:
- 对象自身的创建和销毁的监听器(ServletContextAttributeListener)
- 对象中属性的创建和消除的监听器(ServletRequestAttributeListener )
- session中的某个对象的状态变化的监听器(HttpSessionAttributeLister)
3) 按监听Session 内的对象划分:
- (HttpSessionBindingListener)
- (HttpSessionActivationListener)
与上面六类不同,3)中两类 Listener 监听的是Session 内的对象,而非 Session 本身,不需要在 web.xml中配置。
创建Listener 监听器
(一)监听 Session、request、context 的创建与销毁。
HttpSessionLister、ServletContextListener、ServletRequestListener
1、三种监听器的触发时机及使用:
2、实例:实现监听对象的创建与销毁
HttpSessionLister
ServletContextListener
ServletRequestListener
(二)监听对象属性变化
HttpSessionAttributeLister、ServletContextAttributeListener、ServletRequestAttributeListener
1、三种监听器的触发时机及使用:
2、实例:实现对象属性的监听
HttpSessionAttributeLister
ServletContextAttributeListener
(三)监听Session 内的对象
分别为HttpSessionBindingListener 和 HttpSessionActivationListener
1、触发时机及使用:
对象必须实现Listener接口,不需要在web.xml中配置
2、实例:实现对象属性的监听
(四)web.xml中配置监听器
这里要谨记一条原则:
在web.xml中,监听器>过滤器>servlet。也就是说web.xml中监听器配置在过滤器之前,过滤器配置在servlet之前,否则会出错。
一个web.xml下有多一个监听器的话:是按照web.xml中配置顺序的加载而加载的。
总结
过滤器是Servlet 规范中定义的一种特殊类,可以理解为用于监听 时间,对象,或者某些对象的属性。可以在事件发生前,发生后做一些必要的处理。
源码下载
[相关示例完整代码]请获取 相关分支哦:feature-20180910-web