Filter
自用…
一、概述
1. 概念
- 过滤器:当访问服务器资源时,过滤器可以将请求拦截下来,完成一些特殊功能。web的三大组件之一
- 过滤器的作用:一般用于完成通用的操作
- 登录验证
- 统一编码处理
- 敏感字符的过滤
2. 入门
-
1)定义一个类,实现接口Filter
-
2)复写方法
-
3)配置拦截路径
-
web.xml
-
<filter> <filter-name>demo1</filter-name> <filter-class>filter.Test01_Filter</filter-class> </filter> <filter-mapping> <filter-name>demo1</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
-
-
注解:
@WebFilter("...")
-
二、详解
1. 过滤器执行流程
- 在访问资源时,先执行过滤器放行代码上的代码、
- 放行、
- 执行资源、
- 回到过滤器放行代码下的代码
2. 生命周期方法
- 1)init:在服务器启动后,会创建filter对象,调用init方法。执行一次。用于加载资源
- 2)destroy:服务器关闭,filter对象被销毁。如果服务器正常关闭,执行destroy方法。用于释放资源
- 3)doFilter:每一次拦截资源时,会执行。执行多次
3. 过滤器配置详解
① 拦截路径配置
- 1)具体资源路径:
/index.jsp
,只有访问index.jsp资源时,过滤器才会执行 - 2)拦截目录:
/user/*
,访问/user下的所有资源时,过滤器执行 - 3)后缀名:
*.jsp
,访问所有后缀名为jsp资源时,过滤器执行 - 4)拦截所有资源:
/*
,访问所有资源时,过滤器执行
② 拦截方式配置
- 指:资源被访问的方式
- 1)注解
- 设置dispatcherTypes属性
- request:默认值。浏览器直接请求资源
- forward:转发访问资源
- include:包含访问资源
- error:错误跳转资源
- async:异步访问资源
- 设置dispatcherTypes属性
- 2)web.xml
- 设置
<diapatcher></dispatcher>
标签
- 设置
4. 过滤器链
- 1)过滤器链:多个过滤器
- 2)执行顺序:略
- 3)过滤先后顺序
- 注解配置:按照类名字符串比较规则,值小的先执行
- web.xml配置:谁定义在上边,谁先执行
三、案例
1. 登录验证
- 1)需求
- 访问资源,验证其释放登录
- 如果登录了,则放行
- 如果没有登录,则跳转登录页面,提示“您尚未登录,请登录”
- 2)