gpt4 book ai didi

java - Servlet 过滤器 - 上下文初始化

转载 作者:行者123 更新时间:2023-11-30 11:50:48 28 4
gpt4 key购买 nike

当使用“全局”过滤器时,它位于 apache tomcat web 服务器的根 lib 目录中,适用于所有 web 应用程序上下文:我想知道 Web 应用程序上下文是否同步初始化 - 一次初始化一个,或者是否会出现 Filter.init() 函数同时被两个不同上下文调用的情况。

我问这个是因为我想在任何应用程序上下文第一次调用 init() 时基于特定的 FilterConfig.initParameter 初始化数据库连接配置对象,我想知道是否应该将上面是否在同步块(synchronized block)中......

最佳答案

我认为这是 Tomcat 的内部结构,它随时可能更改,所以我会在同步块(synchronized block)中进行更改。这不是什么大问题或性能问题,因为它在每次应用程序上下文初始化时只运行一次。

来自 Java Servlet Specification 6.2.1 过滤器生命周期:

Only one instance per <filter> declaration in the deployment descriptor is instantiated per JVM of the container.

您可以使用自定义 Valve 达到相同的结果:

关于java - Servlet 过滤器 - 上下文初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7756645/

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