一尘不染

这种表达语言$ {pageContext.request.contextPath}在JSP EL中到底有什么作用?

jsp

我有一个Web应用程序,其中有不同的导航锚标记,例如Home,Profile等。

我想要的是:

当我按锚标记(例如主页或个人资料)时。我只想确保当前用户在该标签/ JSP页面中获取其信息。

我正在尝试的示例示例:

<a  href="${pageContext.request.contextPath}/JSPAddress.jsp">Profile</a>

阅读 260

收藏
2020-06-08

共1个答案

一尘不染

pageContext是在JSP中提供一个隐含的对象。EL文档

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

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

此表达式的主要目的是使您的链接“相对”于应用程序上下文,并使它们与应用程序路径的更改隔离。


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

如果有一天,您决定将JSP部署在上下文路径为的另一台服务器上corpWebApp,则为链接生成的href将自动更改为,/corpWebApp/JSPAddress.jsp而无需您进行任何工作。

2020-06-08