Существенное различие между /*
и /
заключается в том, что сервлет с отображением /*
будет выбран до любого сервлета с расширением (например, *.html
), тогда как сервлет с отображением /
будет выбранные только после сопоставлений с расширениями (и будут использоваться для любого запроса, который не соответствует чему-либо еще - это «сервлет по умолчанию»).
В частности, отображение /*
будет всегда выбирается перед отображением /
. Предотвращение любых запросов от получения собственного сервлета по умолчанию.
Либо будут выбраны только после сопоставлений сервлетов, которые являются точными совпадениями (например, /foo/bar
), и теми, которые являются сопоставлениями пути дольше, чем /*
( как /foo/*
). Обратите внимание, что пустым сопоставлением строк является точное соответствие для корня контекста (http://host:port/context/
).
См. Главу 12 спецификации сервлета Java, доступную в версии 3.1 на странице http: // download. oracle.com/otndocs/jcp/servlet-3_1-fr-eval-spec/index.html.