我正在尝试设置一个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>