当前位置: 首页 > 知识库问答 >
问题:

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

明正德
2023-03-14

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

我知道这取决于实现(取决于web容器),但这似乎是所有人都需要解决的问题。

也许在web容器的每个过滤器注册的地方都设置了一个配置选项?

其他:

此外,什么控制过滤器的执行顺序?为什么FooFilter会在BarFilter之前执行?

共有2个答案

佘京
2023-03-14

根据servlet2.3规范的滤波器是根据web.xml配置来执行滤波器映射序列Ref-http://www.programering.com/a/MTMyADOwATI.html

司寇正志
2023-03-14

过滤器链本质上包裹了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

}
 类似资料:
  • 问题内容: 所述javax.servlet.Filter的对象可以用于认证使用二者(其中过滤器需要赶上请求需要做任何servlet工作需要之前)和XSLT转换(其中的servlet需要是完全完成生成的内容)。它什么时候真正执行? 我知道这是依赖于实现的(在Web容器上),但这似乎是所有问题都需要解决的问题。 也许在某个地方为每个向Web容器注册的过滤器设置了一个配置选项? 额外: 另外,什么决定了

  • 问题内容: 在Java 7的try-with-resources中,我不知道finally块和自动关闭发生的顺序。什么顺序 问题答案: 资源在捕获或最终阻塞之前被关闭。请参阅本教程。 try-with-resources语句可以具有catch并最终阻塞,就像普通的try语句一样。在try-with- resources语句中,在声明的资源已关闭之后,将运行任何catch或finally块。 要评估

  • mysql的redolog的写入,是在数据刷盘之前还是之后?

  • 问题内容: 我已经与SwingWorker一起工作了一段时间,并最终出现了奇怪的行为,至少对我而言。我清楚地了解,由于性能原因,一次调用中合并了多个对publish()方法的调用。这对我来说非常有意义,我怀疑SwingWorker会保留某种队列来处理所有调用。 根据教程和API,当SwingWorker结束执行时,doInBackground()正常完成,或者从外部取消了工作线程,然后调用done

  • 我想我错过了一些关于之前和之前的方式。我有一个规范文件,加载数据从夹具在之前的方法。这些数据中的一部分被用在之前的函数中,然后又被用在之前的函数中,以及在实际的测试中。规范文件包含2个测试。第一个测试按预期执行。第二个失败,因为beForeeach表示来自夹具的值之一未定义。 我的期望是,如果我加载数据从一个夹具在之前的方法,它应该是可用于所有测试规范文件。 在执行“检查按钮栏的状态”时,测试be