功能:
·访问特定资源时的身份验证
·访问资源的记录跟踪
·访问资源的转换
适用的场合:
·身份验证
·日志:对请求进行审核和日志记录
·认证:对用户请求进行统一认证
·数据清洗:过滤、修改、替换、格式化
·资源访问触发事件过滤
过滤器的生命周期:
Filter的创建和销毁由Web服务器负责。web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法,读取web.xml配置,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作(filter对象只会创建一次,init方法也只会执行一次)。
Filter工作的实现:
- 编写java类实现Filter接口,并实现其doFilter方法。Filter接口中有一个doFilter方法,当我们编写好Filter,并配置对哪个web资源进行拦截后,Web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法。
- 在web.xml文件中对编写的filter类进行注册,并设置它所能拦截的资源。具体 设置包括:<filter>指定一个过滤器、<filter-name>用于为过滤器指定一个名字,该元素的内容不能为空、<filter-mapping>元素设置一个 Filter 所负责拦截的资源,一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径、<url-pattern>设置 filter 所拦截的请求路径等具体操作。
多个Filter的执行顺序:
1.在web.xml中,filter执行顺序跟<filter-mapping>的顺序有关,谁先声明的谁先执行。
2. 如果使用注解配置的话,filter的执行顺序跟名称的字母顺序有关,字母排序在前的先执行。
3.如果Filter不仅在web.xml中有声明,在注解配置中也有相关的配置,那么会优先执行web.xml中配置的Filter。