1. 回顾一下三个作用域
启动tomcat时会创建ServletContext,关闭服务器,将项目从服务器中移除会销毁ServletContext
请求项目中的任何资源都会创建ServletRequest,请求结束,销毁ServletRequest
请求项目中的JSP资源会创建HttpSession,Session过期,服务器正常或非正常退出都会销毁HttpSession
2. Listener
监听器,监听某个事件的发生或状态改变
监听器的内部机制就是接口回调
- WEB监听器
总共有8个,划分为三种类型
- 监听三个作用域的创建和销毁
ServletContextListener 利用它,在创建ServletContext的时候,完成初始化操作,执行任务调度
ServletRequestListener 利用它,监听ServletRequest的创建和销毁
HttpSessionListener 利用它,统计在线人数
- 监听三个作用域的属性状态变更
可以监听作用域中值添加|替换|移除操作
ServletContextAttributeListener
ServletRequestAttributeListener
HttpSessionAttributeListener
- 监听HttpSession存储值的状态变更
这类监听器不用注册
HttpSessionBindingListener JavaBean实现该接口即可监听,监听对象在HttpSession中的绑定和移除
3. Filter
过滤器,就是对客户端发送的数据进行过滤,其实就是起到了拦截器的作用
可以对一些敏感词汇进行过滤
统一设置编码类型
自动登录
...
- 如何使用过滤器?
定义一个类,实现Filter接口 注册过滤器 <filter> <filter-name>FilterDemo</filter-name> <filter-class>com.kernel.filter.FilterDemo</filter-class> </filter> <filter-mapping> <filter-name>FilterDemo</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
- Filter生命周期
在服务器启动时,创建Filter,当服务器停止,Filter销毁
- Filter执行顺序
客户端发出请求,经过过滤器,过滤器通过chain.doFilter()方法放行后,才能到达Servlet,如果有多个过滤器,按照注册的顺序,一次经过每个过滤器,只有所有过滤器放行后,才会到达Servlet
- dispatcher
REQUEST 拦截所有请求
FOWORD 拦截所有转发
ERROR 拦截页面出错
INCLUDE 拦截包含页面
原文地址:http://blog.51cto.com/13559120/2329158