Java面试题大全

request.getServletPath() 返回值是什么?

比如,http://your.com/demo/a/b/c.html

其中,webapp的映射路径为 /demo

比如,http://your.com/demo/a/b/c.html

这个 ServletPath 其实有点问题,不一定时 /a/b/c.html


第一种:

@WebServlet ("*.html")

如果是这种URL Pattern,则 ServletPath 就是 /a/b/c.html


第二种:

@WebServlet ("/a/*")

如果是这种URL Pattern,则 ServletPath 就是 /a

显然,这样是不符合我们要求的。无论是 Servlet,还是 Filter ,都无法得到正确的 ServletPath


所以,还是自己解析一下吧。

      String contextPath = request.getServletContext().getContextPath();  // 例如 /demo

      String requestUri = request.getRequestURI();  // 例如 /demo/a/b/c.html

      String servletPath = requestUri.substring(contextPath.length());    // 例如 /a/b/c.html






千问首页   |   返回上一页