2011-10-13 93 views
2

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

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

回答

1

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

Java Servlet Specification6.2.1过滤器生命周期

每<过滤器只有一个实例>声明在部署描述符 每个容器的JVM实例化。

你可能会达到一个自定义阀相同的结果: