GlassFish 3.1 и тег переполнения стека файлов web.xml файл

#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 запроса минус контекстный путь, а информация о пути равна нулю.
  • Все остальные строки используются только для точного совпадения.

Ответ №2:

Интересный вопрос! Из спецификации сервлета 3.0 не похоже, что подстановочный знак в сопоставлениях сервлетов работает так же, как подстановочный знак регулярного выражения; у сопоставления есть границы.

*.sde был бы допустимым отображением.

То же самое можно сказать и о «/sde / *», но я не вижу никаких упоминаний о встроенных подстановочных знаках, поскольку вы их используете. Спецификацию Servlet 3.0 смотрите в разделе 12.2.