gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:05:53 25 4
gpt4 key购买 nike

javax.servlet.Filter对象既可用于身份验证(其中 Filter 需要在需要完成任何 servlet 工作之前捕获请求),也可用于 XSLT 转换(其中 servlet 需要完全完成生成内容)。什么时候真正执行?

我知道这是依赖于实现的(在网络容器上),但这似乎是他们所有人都需要解决的问题。

也许在 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/34446502/

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