gpt4 book ai didi

java - doFilter() 是在 Servlet 的工作完成之前还是之后执行?

转载 作者:IT老高 更新时间:2023-10-28 20:25:36 24 4
gpt4 key购买 nike

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

}

关于java - doFilter() 是在 Servlet 的工作完成之前还是之后执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1323009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com