3

这两者有什么区别?

在 JSP 中:

${pageContext.request.contextPath} 

如果在没有表达式语言和 servlet 的情况下进行编码,如何获得相同的结果?

在小服务程序中:

request.getServletPath() 

如果用 JSP 编码,如何获得相同的结果?

4

3 回答 3

5

${pageContext.request.contextPath} :返回请求 URI 中指示请求上下文的部分。事实上,它与 相同request.getContextPath(),因为${pageContext.request}是指HttpServletRequest当前请求的 。

例如:

http://localhost:80/myapplication/path/servlet

  • ${pageContext.request.contextPath}返回/myapplication

  • request.getServletPath()返回此请求的 URL 中调用 servlet 的部分,例如/path/servlet

  • ${pageContext.request.servletPath}返回/path/servlet

于 2012-12-31T09:14:00.927 回答
2

作为对问题第二部分的回答:

request.getServletPath()如果使用表达式语言在 JSP 中编码,如何获得相同的结果?


这里相当于使用request.getServletPath()表达式语言:

${pageContext.request.servletPath}

如果您想通过表达式语言使用其他 ServletRequest/HttpServletRequest 方法,只需使用${pageContext.request.method},其中method是适当的方法之一。

于 2013-01-01T22:41:39.000 回答
1

对于由 JSP 处理的视图,则${pageContext.request.servletPath}返回 jsp 的路径,而不是来自web.xml.

为了得到我使用的:${requestScope['javax.servlet.forward.servlet_path']}

于 2014-05-20T20:47:19.367 回答