Есть два сервлета: A, B
Отображение к: /*
B для отображения: /sub_dir/*
если url находится в /sub_dir/*
то он обрабатывается B, иначе A.
Это может помочь вам понять url-pattern
Запрос может соответствовать более чем одному сервлет-отображению в данном контексте. Контейнер сервлета использует процедуру прямого сопоставления для определения наилучшего соответствия.
Во-первых, контейнер предпочитает точное соответствие пути по совпадению с шаблоном.
Во-вторых, контейнер предпочитает соответствовать самому длинному шаблону.
В-третьих, контейнер предпочитает соответствие пути по совпадениям типа файла.
Наконец, шаблон <url-pattern>/</url-pattern>
всегда соответствует любому запросу, который не соответствует никакому другому шаблону.
Взгляните на мой другой пост. Как фильтр сервлетов идентифицировать следующий пункт назначения - это другой фильтр или сервлет /jsp? для подробного описания.
Могу ли я сделать это сложное отображение URL-адресов в веб-контейнере с помощью сервлета?
Да, вы можете создать сложное отображение URL-адресов, просто соблюдая правила в уме.
В вашем случае наиболее конкретный или самый длинный url-pattern /sub_dir/*
имеет более высокий приоритет над /*
в соответствии с правилом.
/sub_dir/*
?