В чем разница между этими сопоставлениями URL?
<url-pattern>/servlet</url-pattern>
а также
<url-pattern>/servlet/*</url-pattern>
а также
<url-pattern>/*</url-pattern>
а также
<url-pattern>*.do</url-pattern>
В чем разница между этими сопоставлениями URL?
<url-pattern>/servlet</url-pattern>
а также
<url-pattern>/servlet/*</url-pattern>
а также
<url-pattern>/*</url-pattern>
а также
<url-pattern>*.do</url-pattern>
Обратите внимание, что корень (/
) означает корень контекста вашего веб-приложения.
<url-pattern>/servlet</url-pattern>
Соответствует определенному ресурсу, который напрямую соответствует пути servlet
в корневом каталоге (/)
<url-pattern>/servlet/*</url-pattern>
Соответствует любому ресурсу под /servlet
.
<url-pattern>/*</url-pattern>
Соответствует любому ресурсу в корневом каталоге (/
).
<url-pattern>*.do</url-pattern>
Соответствует определенному шаблону файла, т. е. заканчивающемуся на .do
.
Шаблоны URL описаны в Спецификация сервлета 3.0, раздел 12.2 Спецификация сопоставления:
В дескрипторе развертывания веб-приложения для определения отображений используется следующий синтаксис:
Строка, начинающаяся с символа
/
и заканчивающаяся суффиксом/*
, используется для отображения пути.Строка, начинающаяся с префикса
*.
, используется в качестве отображения расширения.Пустая строка () — это специальный шаблон URL, который точно соответствует корню контекста приложения, т. е. запросам формы
http://host:port/<context-root>/
. В этом случае информация о пути —/
, а путь сервлета и путь контекста — пустая строка («»).Строка, содержащая только символ
/
, указывает сервлет приложения по умолчанию. В этом случае путь сервлета — это URI запроса минус путь контекста, а информация о пути равна нулю.Все остальные строки используются только для точного совпадения.