在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

回到顶部