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

Java Servlet过滤器-上下文初始化,java,tomcat,synchronization,servlet-filters,Java,Tomcat,Synchronization,Servlet Filters,使用“全局”筛选器时,该筛选器位于apache tomcat web服务器的根lib目录中,并应用于所有web应用程序上下文: 我想知道web应用程序上下文是否是同步初始化的——一次初始化一个,或者是否存在两个不同上下文同时调用Filter.init()函数的情况 我这样问是因为我想在任何应用程序上下文第一次调用init()时基于特定的FilterConfig.initParameter初始化数据库连接配置对象,我想知道我是否应该将上面的内容放在同步块中…我想这是Tomcat的内部结构,它可以随

使用“全局”筛选器时,该筛选器位于apache tomcat web服务器的根lib目录中,并应用于所有web应用程序上下文: 我想知道web应用程序上下文是否是同步初始化的——一次初始化一个,或者是否存在两个不同上下文同时调用Filter.init()函数的情况


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

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

从6.2.1过滤器生命周期开始:

部署中每个声明只有一个实例 描述符是根据容器的每个JVM实例化的

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