概述

实现对web资源请求的拦截,完成特殊的操作,用于对用于请求的预处理和对请求相应进行后处理。
image.png
image.png

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/1597025/1599294068745-46426215-d52f-402a-9d1d-6b09847bc2b5.png#align=left&display=inline&height=318&margin=%5Bobject%20Object%5D&name=image.png&originHeight=685&originWidth=1249&size=309853&status=done&style=none&width=579)<br />一般完成通用的操作,例如登录验证、编码处理、敏感词汇过滤、响应信息压缩。

快速入门操作步骤

1、定义一个类,实现接口Filter;
2、复写方法;
3、配置拦截路径【web.xml或注解】

image.png

放行

doFilter方法中需要设置放行
filterChain.doFilter(servletRequest,servletResponse);

注解方式

拦截路径

@WebFilter()
如果是@WebFilert(“/*”)表示访问任何资源都会执行此过滤器

拦截方式

@WebFilter(value=”/*”,dispatcherType=DispatcherType.REQUEST)
第一个参数表示路径,第二个参数表示拦截方式

REQUEST 默认值,请求访问时执行
FORWARD 转发访问时才执行
INCLUDE 包含访问资源时执行
ERROR 错误跳转资源
ASYNC 异步访问资源

dispatcherType是数组类型的,可以设置多个
dispatcherType={DispatcherType.REQUEST,DispatcherType.FORWARD}