这两者有什么区别?
在 JSP 中:
${pageContext.request.contextPath}
如果在没有表达式语言和 servlet 的情况下进行编码,如何获得相同的结果?
在小服务程序中:
request.getServletPath()
如果用 JSP 编码,如何获得相同的结果?
${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
作为对问题第二部分的回答:
request.getServletPath()
如果使用表达式语言在 JSP 中编码,如何获得相同的结果?
这里相当于使用request.getServletPath()
表达式语言:
${pageContext.request.servletPath}
如果您想通过表达式语言使用其他 ServletRequest/HttpServletRequest 方法,只需使用${pageContext.request.method}
,其中method是适当的方法之一。
对于由 JSP 处理的视图,则${pageContext.request.servletPath}
返回 jsp 的路径,而不是来自web.xml
.
为了得到我使用的:${requestScope['javax.servlet.forward.servlet_path']}