这个表达式语言$ {pageContext.request.contextPath}在JSP EL中的作用是什么?

a k*_*a k 37 java jsp el

我有一个网络应用程序,我有不同的导航锚标签,如家庭,个人资料等.

我想要的是:

当我按下主页或个人资料等锚标签时.我只想确保当前用户在Tags/JSP页面中获取其信息.

我正在尝试的示例示例:

<a  href="${pageContext.request.contextPath}/JSPAddress.jsp">Profile</a>
Run Code Online (Sandbox Code Playgroud)

no.*_*ing 66

pageContext是JSP中可用的隐式对象.EL文档

JSP页面的上下文.提供对各种对象的访问,包括:
servletContext:...
session:...
request:...
response:...

因此,此表达式将获取当前HttpServletRequest对象并获取当前请求的上下文路径,并附/JSPAddress.jsp加到它以创建链接(即使在更改时访问此资源的上下文路径,该链接也将起作用).

此表达式的主要目的是使链接与应用程序上下文保持"相对",并使它们与应用程序路径的更改隔离开来.


例如,如果thisJSP.jsp访问您的JSP(已命名)http://myhost.com/myWebApp/thisJSP.jsp,则将使用上下文路径myWebApp.因此,生成的链接href将是/myWebApp/JSPAddress.jsp.

如果有一天,您决定在具有context-path的另一台服务器上部署JSP,corpWebApp则为该链接生成的href将自动更改为您/corpWebApp/JSPAddress.jsp无需任何工作.

  • @MeBigFatGuy我不相信`request`是EL中的隐含对象(虽然有`requestScope`) - 获取对请求实例的引用的方法是通过OPS片段中的`pageContext`. (9认同)

Nav*_*enG 5

包括<%@ page isELIgnored="false"%>在您的 jsp 页面顶部。