如何避免匹配没有斜杠的路径与 servlet 映射?



我正在尝试设置一个servlet,以便对/foo/*的任何请求都将转到我的Foo servlet,但以/foo/bar/*形式的请求除外,后者将转到Bar servlet。但是,我希望/foo/bar转到Foo servlet,而不是Bar servlet。有没有一种方法可以只使用web.xml中的url模式来实现这一点?

我的映射:

<servlet-mapping>
    <servlet-name>Bar</servlet-name>
    <url-pattern>/foo/bar/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Foo</servlet-name>
    <url-pattern>/foo/*</url-pattern>
</servlet-mapping>

我尝试过删除星号并尝试其他一些模式,但我能看到的唯一方法是为/foo/bar创建一个特定的映射,尽管似乎应该有更好的方法。

如果您使用的是servlet规范v2.5或更高版本,那么您可以为相同的servlet映射提供多个url模式元素,例如:

<servlet-mapping>
  <servlet-name>Foo</servlet-name>
  <url-pattern>/foo/*</url-pattern>
  <url-pattern>/foo/bar</url-pattern>
</servlet-mapping>

相关内容

  • 没有找到相关文章

最新更新