一、Filter作为Web的三大部分之一
二、
1. web.xml的配置
<filter>
<filter-name>demo1</filter-name>
<filter-class>filter的class文件的所在位置</filter-class>
</filter>
<filter-mapping>
<filter-name>demo1</filter-name>
<!-- 拦截路径--!>
<url-pattern>/*</url-pattern>
</filter-mapping>
-
过滤器的执行过程
- 执行过滤器
- 执行放行后的资源
- 回来执行过滤器放行代码下的代码
-
过滤器的生命周期
- init:在服务器启动后,会创建filter对象,然后调用init对象。只执行一次。用于加载资源
- dofilter:每一次请求被拦截资源后,会执行。执行多次
- destroy:在服务器关闭后,filter对象被销毁。前提是服务器正常关闭
-
过滤器配置详解
*拦截路径配置1. 具体资源路径: /index.jsp 只有访问index.jsp资源的时候,过滤器才会执行 2. 拦截目录: /user/* 访问user目录下的所有资源的时候过滤器都会执行 3. 后缀名拦截: *.jsp 当资源为jsp格式时过滤器就会执行 4. 拦截所有资源: /*
*拦截方式配置: 资源被访问的方式
*注解配置: 设置dispatcherTypes 属性 - REQUSET: 默认值,浏览器直接请求资源 - FORWARD: 转发访问资源的时候 - INCLUDE: 包含访问资源的时候 - ERROR: 错误跳转资源 - ASYNC: 异步访问资源 *web.xml配置 设置<dispatcher></dispatcher>标签即可
- 过滤器链
*执行顺序: 如果有两个过滤器filter1和filter2- filter1
- filter2
- 资源执行
- filter2
- filter1
- 过滤器链
*过滤器执行先后顺序
1. 注解配置: 按照字符的大小规则比较,字符数值小的先执行
2. 按照xml配置文件中 <filter-mapping>
谁定义在上边先先执行