#java #servlets #glassfish #web.xml
#java #сервлеты #glassfish #web.xml
Вопрос:
Я прочитал, что в тег <url-pattern>
я могу записать URL-адрес шаблона префикса или суффикса.
Но если я попытаюсь написать что-то вроде:
<url-pattern>*sde</url-pattern>
или
<url-pattern>/sde*</url-pattern>
и попробуйте получить URL-адрес как polsde alsde или sdepp sdelop, у меня ошибка 404, и развертывание не удалось
в журнал сервера.
Что не так?
Ответ №1:
URL-шаблон неверен.
Предоставленный вами шаблон недействителен
Спецификация URL-шаблона:
- Для сопоставления путей используется строка, начинающаяся с символа ‘/’ и заканчивающаяся суффиксом ‘/*’.
- Строка, начинающаяся с префикса ‘*.’, используется в качестве сопоставления расширений.
- Строка, содержащая только символ ’/’, указывает на сервлет приложения «по умолчанию». В этом случае путь к сервлету — это URI запроса минус контекстный путь, а информация о пути равна нулю.
- Все остальные строки используются только для точного совпадения.
- Пожалуйста, обратитесь к спецификациям Java Servlet
Ответ №2:
Интересный вопрос! Из спецификации сервлета 3.0 не похоже, что подстановочный знак в сопоставлениях сервлетов работает так же, как подстановочный знак регулярного выражения; у сопоставления есть границы.
*.sde был бы допустимым отображением.
То же самое можно сказать и о «/sde / *», но я не вижу никаких упоминаний о встроенных подстановочных знаках, поскольку вы их используете. Спецификацию Servlet 3.0 смотрите в разделе 12.2.