Servlet. Спецификация сопоставлений? - PullRequest
0 голосов
/ 03 января 2012

На основе Java Servlet Specification Version 3.0:

В дескрипторе развертывания веб-приложения для определения отображений используется следующий синтаксис:

Строка, начинающаяся с символа '/' и заканчивающаяся '/ * 'для отображения пути используется суффикс.

Строка, начинающаяся с' *. 'префикс используется как отображение расширения.

Строка, содержащая только символ '/', указывает сервлет приложения по умолчанию.

Все остальные строки используются только для точных совпадений.

Итак, у меня есть следующие вопросы:

  1. Как я могу обработать этот шаблон URL: "/foo/bar/*.jsp"?

  2. Какая принципиальная разница между '/ *' и '/'?

1 Ответ

1 голос
/ 03 января 2012
  1. Используйте менее ограничительный шаблон (например, /foo/bar/*) и применяйте дополнительные ограничения программным способом.

  2. / обрабатывает запрос, только если его URL не 'не соответствует любому другому отображению, тогда как /* следует нормальным правилам приоритета отображения.
    Например, если вы сопоставите фронт-контроллер вашего приложения как /*, вы не сможете отобразить страницы JSP, потому что /* занимаетприоритет над встроенным сервлетом JSP, сопоставленным с *.jsp.

...