Что, если шаблон url соответствует нескольким сервлетам?

<servlet-mapping>
  <servlet-name> s1</servlet-name>
  <url-pattern> /abc </url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name> s2</servlet-name>
  <url-pattern> /abc </url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name> s3</servlet-name>
  <url-pattern> /* </url-pattern>
</servlet-mapping>

Какой сервлет будет вызываться, если приходит запрос /abc? и почему?

Ответ 1

Проверьте это. Короче говоря:

  • если отображения имеют точно такой же шаблон, нет гарантии, какой сервлет будет вызываться. Поэтому избегайте этого.
  • Если шаблоны перекрываются, выбирается наиболее конкретный. (/abc более конкретный, чем /*)