Я знаю, что не могу использовать регулярные выражения для <url-pattern>
сопоставления фильтров, но можно ли использовать шаблон каталога для укажите любой URL-адрес, содержащий слово myuniqws
, например:
https://my.hostname.org/myuniqws/myport/soap?wsdl
Я думаю, что, возможно, это будет правильный синтаксис:
<url-pattern>/*myuniqws*</url-pattern>
но мне не удалось найти документацию по точному правилу синтаксиса Tomcat <url-pattern>
.
Будет ли приведенное выше регулярное выражение работать так, как я хочу?
Обновление:
Благодаря приведенному ниже ответу я обнаружил следующий раздел в Спецификации сервлетов Java, который в основном отвечает на мои вопросы.
12.2 Спецификация сопоставлений
В дескрипторе развертывания веб-приложения для определения отображений используется следующий синтаксис:
- Строка, начинающаяся с символа «/» и заканчивающаяся суффиксом «/*», используется для отображения пути.
- Строка, начинающаяся с префикса «*.», используется в качестве сопоставления расширения.
- Пустая строка ("") — это специальный шаблон URL-адреса, который точно соответствует корню контекста приложения, т. е. запросам формы
http://host:port/<contextroot>/
. В этом случае информация о пути — «/», а путь сервлета и путь контекста — пустая строка («»). - Строка, содержащая только символ '/', указывает сервлет приложения по умолчанию. В этом случае путь сервлета — это URI запроса минус путь контекста, а информация о пути равна нулю.
- Все остальные строки используются только для точного совпадения.
Если действующий web.xml
(после слияния информации из фрагментов и аннотаций) содержит какие-либо шаблоны URL-адресов, сопоставленные с несколькими сервлетами, развертывание должно завершиться неудачно.