Existe uma maneira de mapear um servlet java para */?
Pergunta
Eu quero mapear um Servlet
para URLs terminando em /
, Curti /user/register/
, /user/login/
, mas não qualquer outro recurso sob esse caminho, não /*
.
eu tentei /*/
, mas não funciona.
Solução
Posso estar errado, mas não tenho certeza se isso é possível. O curinga * é usado apenas no final dos padrões de 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
Outras dicas
Mapa a Filter
sobre /*
e deixe determinar se a solicitação precisa ser passada pelo servlet ou não.
if (request.getRequestURI().endsWith("/")) {
request.getRequestDispatcher("/servleturl").forward(request, response);
} else {
chain.doFilter(request, response);
}
Dessa forma, você pode simplesmente mapear o desejado Servlet
sobre /servleturl
.
Welcome-File List é o que você está procurando. Sob a lista de chamas de boas-vindas, você pode especificar uma lista de arquivos de boas-vindas (cada um com sua própria etiqueta de arquivo de boas-vindas). Quando o URL da solicitação termina com /, o aplicativo procuraria a presença de um desses arquivos que você mencionou na lista de fileiras de boas-vindas (na ordem que você especificou lá, eu acho) sob a pasta apontada pelo URL, e servir esse recurso.