七、WEB-过滤器
1.过滤器配置入口
2.过滤器能做 what?
- 对请求和响应的 HTTP 报文进行预(侯)处理,提供了一个基于 HTTP 协议的切面功能.
- 可以进行权限控制,通过
request.redirect(XXX)
方法,可以将不符合业务要求的请求重定向到其他页面.如果在过滤器的 onRequest
方法中修改了response参数的 body ( 即:response.body().size()>0
),也可通过调用request.redirect
方法来重定向到其他路由路径,则不会执行路由处理,整个过滤器执行完成后,返回response
.用于对权限控制的处理. - 可以用来做性能分析(性能模块就是基于过滤器完成),可以分析请求时间,不同请求的状态等等.
3.方法介绍
//请求过滤函数
public Object onRequest(FilterConfig filterConfig, HttpRequest request, HttpResponse response, Object prevFilterResult );
//响应过滤函数
- 业务请求会调用用户实现的这个类
filterConfig
: 过滤器配置类,对应的类。request
: HTTPServer 请求对象,对应的类org.voovan.http.server.HttpRequest
。response
: HTTPServer 响应对象,对应的类org.voovan.http.server.HttpResponse
。prevFilterResult
: 上一个过滤器的结果,可用来传递状态参数,用于控制过滤器。.第一个过滤器接收的值是 null。- : 本地过滤器的结果,用于传递到下一个过滤器的prevFilterResult参数。