目录
一、filter概念
- Filter表示过滤器,是Java web三大组件(servlet Filter listener)之一
- 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能
- 过滤器一般完成一些通用的操作,比如权限控制,统一编码处理
二、filter的快速入门
- 定义类,实现Filter接口,并重写器所有方法
public class FilterDemo implements Filter { public void init(FilterConfig filterConfig) public void doFilter(ServletRequest request) public void destroy() {} }
- 配置Filter拦截资源路径:在类上定义@WebFilter注解
@WebFilter("/*") public class FilterDemo implements Filter { }
- 在doFilter方法中输出一句话,并放行
三、filter使用细节
filter可以根据需求,配置不同的拦截资源路径
-
- 拦截具体的资源:/index.jsp:只有访问index.jsp时才会被拦截
- 目录拦截:/user/*:访问/user下的所有资源,都会被拦截
- 后缀名拦截:*.jsp:访问后缀名为JSP的资源,都会被拦截
- 拦截所有:/*:访问所有资源,都会被拦截
- 过滤器链:一个Web应用,可以配置多个过滤器,这多个过滤器称为过滤器链
【浏览器-》请求-》filter1放行前-》filter2-》web资源-》放行后-》2-》1-》响应-》浏览器】
**注意
注解配置的filter:优先级按照过滤器类名(字符串)的自然排序
四、Listener概念
- 是Javaweb三大组件之一,被叫做监听器
- 监听器可以监听就是application,session,request三个对象创建,销毁或者往其中添加修改删除属性时自动执行代码功能组件
listener分类:javaWeb中提供了8个监听器,如下表所示:
监听器分类 | 监听器名称 | 作用 |
ServiceConText监听 | ServletContextListener | 用于对ServletContext对象监听(创建、销毁) |
ServletContextAttributeListener | 对ServletContext对象中的属性监听(增删改属性) | |
Session监听 | HttpSessionListener | 对Session对象的整体状态的监听(创建,销毁) |
HttpSessionAttributeListener | 监听对象中的属性 | |
HttpSessionBindingListener | 监听对象于Session的绑定和解除 | |
HttpSessionActivationListener | 对Session数据的钝化和活化的监听 | |
Request监听 | ServletRequestListener | 对Request对象进行监听(创建,销毁) |
ServletRequestAttributeListener | 对属性进行监听 |