过滤器:
1.是向Web应用程序的请求和响应添加功能的Web服务组件
2.过滤器可以统一的集中处理请求和响应
3.使用过滤器技术实现对请求数据的过滤
4.过滤器用于拦截传入的请求和传出的响应
5.监视、修改或以某种方式处理正在客户端和服务器之间交换的数据流
6.使用过滤器封装公共任务具有如下优点:模块化;声明式;可重用;透明性
过滤器的常见用途:
利用过滤器特殊的执行时机,可以实现 Web 应用程序中的预处理和后期处理逻辑日志记录;改善性能;安全与会话管理;敏感字过滤
Filter:
过滤器使用步骤:
1. 建立实现Filter接口的类(javax. servlet. Filter)
2. 实现过滤行为-doFilter ( )
doFilter(…) {undefined
//过滤请求
; //调用下一个过滤器或Web资源
//过滤响应
3. 在web. xmI中配置过滤器
<filter>
<filter-name>过滤器名</filter-name>
<filter-class>过滤器的完全限定名</filter-class>
</filter>
<filter-mapping>
<filter-name>过滤器名<filter-name>
<url-pattern>过滤器映射的Web资源</url-pattern>
url-pattern指的是我过滤谁
完全匹配:/index.jsp
目录匹配:/admin/*
扩展名匹配:*.do
全部匹配:/*
</filter-mapping>
过滤器生命周期:
- 实例化
- 初始化
- 过滤doFiIter( )
- 销毁destroy( )
- 实际应用举例:编码处理、解决用户登录问题
监听器Listener
Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。下面将介绍几种常用的监听器,以及它们都适合运用于那些环境。
分类及介绍:
1,ServletContextListener:用于监听WEB 应用启动和销毁的事件,监听器类需要实现javax.servlet.ServletContextListener 接口。
2,ServletContextAttributeListener:用于监听WEB应用属性改变的事件,包括:增加属性、删除属性、修改属性,监听器类需要实现javax.servlet.ServletContextAttributeListener接口。
3,HttpSessionListener:用于监听Session对象的创建和销毁,监听器类需要实现javax.servlet.http.HttpSessionListener接口或者javax.servlet.http.HttpSessionActivationListener接口,或者两个都实现。
4,HttpSessionActivationListener:用于监听Session对象的钝化/活化事件,监听器类需要实现javax.servlet.http.HttpSessionListener接口或者javax.servlet.http.HttpSessionActivationListener接口,或者两个都实现。(没用过)
5,HttpSessionAttributeListener:用于监听Session对象属性的改变事件,监听器类需要实现javax.servlet.http.HttpSessionAttributeListener接口。 (没用过)
自己理解:过滤器是容器的一种功能,通过过滤器过滤一些url请求,然后针对特定的请求进行请求前的一些自定义处理,比如登录验证,拦截器之后再进行controller处理,处理后还可以进行拦截,针对返回请求前的一些处理,拦截器跟动态代理一样,在请求的前后可以做一些业务逻辑处理。