Как можно сопоставить фильтр с корнем URL? Я использую Tomcat 7.0.2 и развертываю приложение как ROOT.war. Страница приветствия - sign_in.xhtml. Я хотел бы запускать фильтр всякий раз, когда клиент отправляет запрос на корень сайта (то есть только имя домена), или когда клиент запрашивает sign_in.xhtml. Вот что у меня есть:
<filter>
<filter-name>My filter</filter-name>
<filter-class>com.myApp.myFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>My filter</filter-name>
<url-pattern>/sign_in.xhtml</url-pattern>
</filter-mapping>
Запросы для sign_in.xhtml напрямую, успешно вызывают фильтр, но я не уверен, как получить запросы для корня, чтобы вызвать фильтр. Согласно спецификации Servlet (версия 3.0)
<url-pattern>/</url-pattern>
отображается на сервлет по умолчанию, а пустая строка отображается на корень. Вот соответствующий раздел из спецификации:
"Пустая строка (" ") - это специальный шаблон URL, который точно соответствует
корень контекста приложения, т. е. запросы вида http://host:port//.. В этом случае информация о пути равна '/', а путь сервлета и путь контекста
пустая строка (««). "
Однако оба из следующих шаблонов URL заставляют Tomcat выдавать исключение.
<url-pattern></url-pattern>
<url-pattern>""</url-pattern>
Я был бы очень признателен, если бы кто-то мог пролить свет на это. Спасибо.
Andrew