七、WEB-过滤器


    1.过滤器配置入口


    2.过滤器能做 what?

    • 对请求和响应的 HTTP 报文进行预(侯)处理,提供了一个基于 HTTP 协议的切面功能.
    • 可以进行权限控制,通过 request.redirect(XXX) 方法,可以将不符合业务要求的请求重定向到其他页面.如果在过滤器的 onRequest 方法中修改了response参数的 body ( 即:response.body().size()>0 ),也可通过调用request.redirect方法来重定向到其他路由路径,则不会执行路由处理,整个过滤器执行完成后,返回response.用于对权限控制的处理.
    • 可以用来做性能分析(性能模块就是基于过滤器完成),可以分析请求时间,不同请求的状态等等.

    3.方法介绍

    1. //请求过滤函数
    2. public Object onRequest(FilterConfig filterConfig, HttpRequest request, HttpResponse response, Object prevFilterResult );
    3. //响应过滤函数
    • 业务请求会调用用户实现的这个类
    • filterConfig: 过滤器配置类,对应的类。
    • request: HTTPServer 请求对象,对应的类org.voovan.http.server.HttpRequest
    • response: HTTPServer 响应对象,对应的类org.voovan.http.server.HttpResponse
    • prevFilterResult: 上一个过滤器的结果,可用来传递状态参数,用于控制过滤器。.第一个过滤器接收的值是 null。
    • : 本地过滤器的结果,用于传递到下一个过滤器的prevFilterResult参数。