Я хочу сопоставить Servlet
с URL-адресами, заканчивающимися на /
, например /user/register/
, /user/login/
, но не любой другой ресурс по этому пути, а не /*
.Есть ли способ сопоставить Java Servlet с * /?
Я пробовал /*/
, но он не работает.
Я хочу сопоставить Servlet
с URL-адресами, заканчивающимися на /
, например /user/register/
, /user/login/
, но не любой другой ресурс по этому пути, а не /*
.Есть ли способ сопоставить Java Servlet с * /?
Я пробовал /*/
, но он не работает.
Возможно, я ошибаюсь, но я не уверен, что это возможно. подстановочный знак * используется только в конце шаблонов URL:
# this is a valid pattern to match anything after root:
*/
# this does not match anything because nothing can come after *
/*/
# this would match anything after the . that was htm
*.htm
welcome-file-list - это то, что вы ищете. в списке приветственных файлов вы можете указать список приветственных файлов (каждый из которых имеет свой собственный тег приветственного файла). Когда URL-адрес запроса заканчивается на /, приложение будет искать наличие одного из тех файлов, о которых вы упоминали в списке приветственных файлов (в том порядке, который вы указали там, я думаю) под папкой, на которую указывает URL-адрес, и служить этому ресурсу.
Содержит Filter
по адресу /*
и позволяет определить, должен ли этот запрос проходить через сервлет или нет.
if (request.getRequestURI().endsWith("/")) {
request.getRequestDispatcher("/servleturl").forward(request, response);
} else {
chain.doFilter(request, response);
}
Таким образом, вы можете просто отобразить нужный Servlet
на /servleturl
.
'* /' - неверный url-шаблон. – BalusC
/*/точно соответствует/* /. Я проверяю исходный код tomcat, но я не думаю, что это так или иначе: < – Brodie