在Servlet工作完成之前或之后执行doFilter()吗?
所述javax.servlet.Filter的对象可以用于认证使用二者(其中过滤器需要赶上请求需要做任何servlet工作需要之前)和XSLT转换(其中的servlet需要是完全完成生成的内容)。它什么时候真正执行?
我知道这是依赖于实现的(在Web容器上),但这似乎是所有问题都需要解决的问题。
也许在某个地方为每个向Web容器注册的过滤器设置了一个配置选项?
另外,什么决定了过滤器执行的顺序?为什么FooFilter会在BarFilter之前执行?
回答:
过滤器链实质上包装了servlet调用。链将处理所有链接,直到它到达“底部”,然后允许servlet运行,然后反向返回链。例如,如果您有一个新的“示例过滤器”,则您的doFilter()方法可能如下所示:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// do pre-servlet work here
chain.doFilter(request, response);
// do post servlet work here
}
以上是 在Servlet工作完成之前或之后执行doFilter()吗? 的全部内容, 来源链接: utcz.com/qa/415148.html