gpt4 book ai didi

java - 为什么在 Spring 中使用 OncePerRequestFilter?

转载 作者:搜寻专家 更新时间:2023-11-01 03:19:15 25 4
gpt4 key购买 nike

正如文档所说:

Filter base class that aims to guarantee a single execution per request dispatch, on any servlet container.

有个问题 What is OncePerRequestFilter?我仍然不知道我们为什么要使用它。

它说“在任何 servlet 容器上”。意思是有servlet容器会不止一次的执行filter?

最佳答案

我已经回答了here还。要了解 OncePerRequestFilter 的作用,我们需要首先清楚地了解普通过滤器的行为方式。当您希望某些特定代码在 servlet 执行之前或之后执行时,您可以创建一个过滤器,其作用如下:

code1   ===>   servlet execution (using chain.doFilter())   ===>    code2

所以code1在servlet之前执行,code2在servlet执行之后。但是在这里,当 servlet 执行时,可能会有一些其他请求到不同的 servlet,并且那个不同的 servlet 也有这个相同的过滤器。 在这种情况下,此过滤器将再次执行。

OncePerRequestFilter 可防止此行为。对于我们的一个请求,这个过滤器将恰好执行一次(不多也不少)。此行为在使用安全身份验证时非常有用。

关于java - 为什么在 Spring 中使用 OncePerRequestFilter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978352/

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