所以我们正在运行一个已经在 Tomcat、Glassfish、WebLogic 和 WebSphere 上测试过的 Web 应用程序。除 WebSphere 外,所有都运行正常。问题是没有为某个目录下的文件处理过滤器。
例如,我有一个过滤器可以从浏览器 cookie 中检查用户的语言,另一个可以获取用户的用户名,在 web.xml 中配置如下:
<!-- ****************************** -->
<!-- * Security context filtering * -->
<!-- ****************************** -->
<filter>
<filter-name>SetSecurityContextFilter</filter-name>
<filter-class>
com.test.security.SecurityContextServletFilter
</filter-class>
</filter>
<!-- ****************************** -->
<!-- ** Locale context filtering ** -->
<!-- ****************************** -->
<filter>
<filter-name>SetLocaleFilter</filter-name>
<filter-class>
com.test.locale.LocaleServletFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>SetSecurityContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SetLocaleFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
两个过滤器都设置了一个静态线程局部变量,可以从静态 getter 访问,但是当同一个文件 'test.jsp' 调用 getter 时,在 ' contextroot /js' 下它们返回默认值(就像未设置一样),而在 ' contextroot /pages' 他们是正确的。
有任何想法吗?
提前致谢。