Понимание сопоставления шаблонов URL в сервлетах и ​​фильтрах

У меня есть некоторые сомнения в понимании того, как значение в <url-pattern> интерпретируется как соответствующее <servlet-mapping> или <filter-mapping>. В основном сомнения возникают в том, как интерпретируется *.

Предположим, что я развернул веб-приложение (.war) с корневым контекстом /firstweb.

Рассмотрим следующий <url-pattern>, определенный в web.xml

(1) <url-pattern> /* </url-pattern>
(2) <url-pattern> /test/abc </url-pattern>
(3) <url-pattern> /test/abc/* </url-pattern>
(4) <url-pattern> /*/abc </url-pattern>

Я знаю, что "*" соответствует любой строке/тексту. Взяв это за основу, у меня есть некоторые сомнения.

Q1) Для случая (1), а именно /* будет ли это соответствовать чему-либо? Если да, будет ли это соответствовать /test, /text/abc, /test/abc и т. д., когда оно находится в URL-адресе?

Q2) Теперь для случая (2), а именно /test/abc, будет ли он соответствовать, когда URL-адрес точно равен /test/abc? как насчет /*, потому что, как мне кажется, * означает любой текст. Не сделает ли это двусмысленным шаблон сопоставления?

Q3) Кроме того, я считаю, что все эти URL-адреса относятся к корневому контексту, то есть все URL-адреса выглядят так: /firstweb/xxx' ,/firstweb/test/abc,/firstweb/`.

Любые ответы простыми словами, чтобы развеять это сомнение, высоко ценятся.

Изменить

Провел еще несколько исследований, следующие ссылки помогут понять, как интерпретировать <url-pattern>

а) что, если шаблон URL соответствует нескольким сервлетам?

б) http://docs.roguewave.com/hydraexpress/3.5.0/html/rwsfservletug/4-3.html


person CuriousMind    schedule 15.04.2016    source источник
comment
Задавая один вопрос на вопрос, легче найти дубликаты. Каждый из этих вопросов уже индивидуально задавался ранее. Подсказка: просмотрите Связанный список справа.   -  person BalusC    schedule 16.04.2016
comment
@BalusC: Я согласен, однако иногда вопросы взаимосвязаны, поэтому их обязательно нужно ставить в одном месте. Я посмотрел ссылки, мои сомнения все еще не ясны. Если вы можете ответить на (1) и (2), было бы здорово. Лично я проверил в tomcat * и /test/abc, и кажется, что * может принимать любые входные URL-адреса /test /text /test/abc/xyz...   -  person CuriousMind    schedule 16.04.2016
comment
1) отвечает в stackoverflow.com/q/4140448 2) косвенно отвечает ответом на 1).   -  person BalusC    schedule 16.04.2016
comment
Спасибо за эту ссылку, я видел это .. позвольте мне проверить это еще раз .. Большое спасибо!   -  person CuriousMind    schedule 16.04.2016