Servlets 如何仅从应用程序上下文路径筛选请求?

Servlets 如何仅从应用程序上下文路径筛选请求?,servlets,servlet-filters,url-pattern,Servlets,Servlet Filters,Url Pattern,环境: JBoss5.2 Servlet 2.4 爪哇7 我试图在调用应用程序上下文路径时执行一个筛选器requests,但我没有找到url模式的任何方法,因为url模式/*接受所有请求 我想在请求此url时执行筛选器,但未触发筛选器 <filter-mapping> <filter-name>PrincipalFilter</filter-name> <url-pattern>/</url-pattern> <

环境:

  • JBoss5.2
  • Servlet 2.4
  • 爪哇7
我试图在调用应用程序上下文路径时执行一个筛选器requests,但我没有找到url模式的任何方法,因为url模式/*接受所有请求

我想在请求此url时执行筛选器,但未触发筛选器

<filter-mapping>
    <filter-name>PrincipalFilter</filter-name>
    <url-pattern>/</url-pattern>
</filter-mapping>

主过滤器
/
我也尝试使用emtpy字符串,但在部署时解析web.xml时出错,可能是服务器太旧了

有什么想法吗

我还尝试了emtpy字符串

这是正确的解决方案。另见


但我在部署时解析web.xml时出错,可能是服务器太旧了

就这样。你真的需要升级任何比以前的主要版本旧的东西(Servlet API目前已经是4.0,2.4是在2003年发布的,所以这已经有十多年的历史了!),否则你将无法用最小的努力升级,你将被迫基本上重写整个应用程序

如果您真的无法升级,那么最好的办法是监听
/*
,只需检查
请求。getRequestURI()
仅返回
请求。getContextPath()
在执行实际逻辑之前,否则只需继续过滤链而不做任何更改

我还尝试了emtpy字符串

这是正确的解决方案。另见


但我在部署时解析web.xml时出错,可能是服务器太旧了

就这样。你真的需要升级任何比以前的主要版本旧的东西(Servlet API目前已经是4.0,2.4是在2003年发布的,所以这已经有十多年的历史了!),否则你将无法用最小的努力升级,你将被迫基本上重写整个应用程序


如果您真的无法升级,那么您最好的办法是监听
/*
,只需检查
request.getRequestURI()
是否只返回
请求。在执行实际逻辑之前,getContextPath()
,否则只需继续过滤链而不做任何更改。

我真的很想升级服务器,但不幸的是,这不取决于我。ThksI真的很想升级服务器,但不幸的是,这不是由我决定的。Thks