在web.xml中配置过滤器
@WebFilter
过滤器种类:
- REQUEST【DEFAULT】
- FORWARD
- INCLUDE
- ERROR
过滤器链:服务器按web.xml定义的先后顺序组装成一条链
step1:web.xml配置
init()
doFilter()
destory()
过滤器生命周期
web容器启动时加载过滤器
过滤器是服务端组件
过滤器分类
默认的过滤器request类型
Web.xml中过滤器配置
过滤器方法
过滤器生命周期
过滤器工作原理
过滤器定义
不放行,循环中直接return退出;
放行,循环中直接continue跳出。
过滤器在实际项目中的应用场景
过滤器的分类
过滤器链执行过程
过滤器链执行过程
过滤器链.
Web.xml配置
生命周期.
做笔记了.
过滤器处理乱码问题,在doFilter中添加request.setCharacterEncoding(charset)
过滤器在实际项目中的应用场景
1、对用户请求进行统一认证(判断当前用户是否符合认证条件,不符合时进行一些处理)——>登陆校验
2、编码转换(转换一些字符集编码,防止开发中乱码问题)
3、对用户发送的数据进行过滤替换(防止注入一些攻击,对参数进行检测和判别)
4、转换图像格式(对response进行后处理,并转换它的格式输出)
5、对响应的内容进行压缩(可以对内容进行加密操作,数据拿过来时进行加密,加密之后解析再返回给用户)
Servlet3.0支持异步处理,Filter可以支持异步操作模式。
@WebFilter中asyncSupported设置为true,dispatcherTypes属性中添加DispatcherType.ASYNC
request中的startAsync()表示开启异步操作,返回AsyncContext对象。将此对象传给线程可以获取request,response对象。
使用线程对事务异步处理
web.xml中Servlet要配置支持异步
从结果来看业务是由线程异步完成,线程休眠10s后输出结果