Есть ли способ сопоставить сервлет Java с * /? - PullRequest
1 голос
/ 18 января 2010

Я хочу сопоставить Servlet с URL-адресами, заканчивающимися на /, например /user/register/, /user/login/, но не с любым другим ресурсом по этому пути, а не /*.

Я пытался /*/, но это не работает.

Ответы [ 3 ]

1 голос
/ 18 января 2010

Отобразить Filter на /* и позволить ему определить, должен ли запрос быть передан через сервлет или нет.

if (request.getRequestURI().endsWith("/")) {
    request.getRequestDispatcher("/servleturl").forward(request, response);
} else {
    chain.doFilter(request, response);
}

Таким образом, вы можете просто сопоставить желаемое Servlet на/servleturl.

1 голос
/ 18 января 2010

Я могу ошибаться, но я не уверен, что это возможно. подстановочный знак * используется только в конце шаблона 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
0 голосов
/ 18 января 2010

welcome-file-list - это то, что вы ищете.под списком файлов приветствия вы можете указать список файлов приветствия (каждый со своим собственным тегом файла приветствия).Когда URL-адрес запроса заканчивается на /, приложение будет искать наличие одного из тех файлов, которые вы упомянули в welcome-file-list (в порядке, указанном вами, я думаю) в папке, на которую указывает URL-адрес, иобслуживать этот ресурс.

...