有没有办法将Java Servlet映射到* /?

时间:2010-01-18 05:54:55

标签: servlets web.xml

我想将Servlet映射到以/结尾的网址,例如/user/register//user/login/,但不是该路径下的任何其他资源,而不是{{1} }。

我尝试了/*,但它不起作用。

3 个答案:

答案 0 :(得分:1)

我可能错了,但我不确定这是可能的。通配符*仅用于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

答案 1 :(得分:1)

Filter上映射/*并让它确定是否需要通过servlet传递请求。

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

这样您就可以在Servlet上映射所需的/servleturl

答案 2 :(得分:0)

welcome-file-list正是您要找的。 在welcome-file-list下,您可以指定welcome-files列表(每个文件都在自己的welcome-file标签下)。当请求URL以/结尾时,应用程序会在URL指向的文件夹下查找您在welcome-file-list中提到的那些文件之一(按照您猜测的顺序),以及为这种资源服务。