Мне интересно, какая разница в использовании одиночных или двойных подстановок для описания url-шаблона при отображении сервлета.
Например: какая разница ниже?
1)
<servlet-mapping id="...">
<servlet-name>BuyServlet</servlet-name>
<url-pattern>/buy/*</url-pattern>
</servlet-mapping>
2)
<servlet-mapping id="...">
<servlet-name>ShopServlet</servlet-name>
<url-pattern>/shop/**</url-pattern>
</servlet-mapping>
EDIT: @Andrew прав, спецификация говорит только об одном шаблоне (*).
Я дважды проверил свой код и заметил, что место, где я нашел двойные подстановочные знаки (**), было в Spring SimpleUrlHandlerMapping bean.
В этом случае это имеет смысл. Согласно класс doc, он использует AntPathMatcher, который гласит:
Отображение соответствует URL-адресам, используя следующие правила:? соответствует одному персонаж * соответствует нулю или больше символов ** соответствует нулю или больше "каталогов" в пути