繁体   English   中英

Servlet过滤器-上下文初始化

[英]Servlet Filters - Context Initialization

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

我问这个问题是因为我想在任何应用程序上下文首次调用init()时都基于特定的FilterConfig.initParameter初始化数据库连接配置对象,我想知道是否应将上述内容放在是否同步块...

我认为这是Tomcat的内部组件,它可以随时更改,因此我将在同步块中进行操作。 这不是什么大问题或性能问题,因为它在每个应用程序上下文初始化中仅运行一次。

来自Java Servlet规范 6.2.1过滤器生命周期

每个容器的JVM仅实例化部署描述符中每个<filter>声明的一个实例。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM