Как можно сопоставить фильтр с корнем 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 напрямую, успешно вызывают фильтр, но я не уверен, как получить запросы от корня для вызова фильтра. Согласно спецификации сервлета (версия 3.0)
<url-pattern>/</url-pattern>
сопоставляется с сервлетом по умолчанию, а пустая строка сопоставляется с корнем. Вот соответствующий раздел из спецификации:
«Пустая строка (" ") - это специальный шаблон URL, который точно соответствует корню контекста приложения, то есть запросам формы http://host:port/ /. В этом случае информация о пути - '/', а путь сервлета и путь контекста - это пустая строка (««) ».
Однако оба следующих шаблона URL-адресов приводят к тому, что Tomcat генерирует исключение.
<url-pattern></url-pattern>
<url-pattern>""</url-pattern>
Я был бы очень признателен, если бы кто-нибудь мог пролить свет на это. Спасибо.
Андрей