当从没有上下文路径的 url调用时,将应用程序设置App
为默认应用程序将导致空的上下文路径值。HttpServletRequest.getContextPath()
在浏览器栏中使用以下 url 请求站点(不/App
!):/foo/bar.xhtml
将导致以下值:
HttpServletRequest.getContextPath()
= ""
HttpServletRequest.getServletPath()
= "/foo/bar.xhtml"
HttpServletRequest.getRequestURI()
= "/App/foo/bar.xhtml"
检索 request-uri 时不应该/App
删除吗?
以下用于从 uri 中删除上下文路径的代码行(在许多问题中使用)将不再起作用:
request.getRequestURI().substring(request.getContextPath().length());
还是应该将其安全地替换为:?
request.getContextPath() + request.getServletPath()
在 Glassfish 3.1.2 上使用 mojarra 2.1.23
Glassfish 设置:
应用程序App
- 上下文根:/App
虚拟服务器 - 默认 Web 模块:App
这样我就可以/App
从 URL 中省略。