关于<%=request.getContextPath()%>和${pageContext.request.contextPath}的问题
2017-10-12 09:27
405 查看
前言
在自己写项目的时候,肯定会遇到的,尤其是在写jsp文件时,发现<%=request.getContextPath()%>和${pageContext.request.contextPath}混写,看起来很乱,学习起来就很乱,使用的时候发现两个都可以用,但还是觉得要弄明白,到底有什么区别?正文
${pageContext.request.contextPath}属于EL表达式的写法,<%=request.getContextPath()%>属于jsp的写法,作用都是取出部署的应用程序名,比如说一个地址http//:localhost:8080/hotel/login.jsp,如果我们需要用EL表达式写就是${pageContext.request.contextPath}/hotel/login.jsp,也可以写成<%=request.getContextPath()%>/hotel/login.jsp,这样都是没与问题的。通常情况下,我们所写项目考虑到维护性,采用MVC思想,针对JSP主要是表现层代码,其他的代码最好不出现在其中,因此,我们习惯在项目jsp中采用EL表达式。
在运行我们发现了<%=request.getContextPath()%>和${pageContext.request.contextPath}获取的结果都是项目名(上下文),如果我们想要获取项目的绝对路径和端口号我们有什么办法呢?
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
然后下文都将引用改成<%=basePath%>就可以了。
这样我们就获取了我们想要的结果又完整的路径和端口号还有项目的上下文环境。
推荐把项目中的${pageContext.request.contextPath}都替换成了<%=basePath%>。
相关文章推荐
- JSP之项目路径问题(${pageContext.request.contextPath},<%=request.getContextPath()%>以及绝对路径获取)
- JSP之项目路径问题(${pageContext.request.contextPath},<%=request.getContextPath()%>以及绝对路径获取)
- JSP之项目路径问题(${pageContext.request.contextPath},<%=request.getContextPath()%>以及绝对路径获取)
- 路径问题 解决 ${pageContext.request.contextPath} <%=request.getContextPath()%>
- 关于路径<%=request.getContextPath()%>和${pageContext.request.contextPath}的问题
- 路径问题 解决 ${pageContext.request.contextPath}
- ${pageContext.request.contextPath}和<%=request.getContextPath()%>
- ${pageContext.request.contextPath}相关问题总结
- ${pageContext.request.contextPath}和<%=request.getContextPath()%>
- 关于<c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
- ${pageContext.request.contextPath}访问相关的问题
- ${pageContext.request.contextPath}和<%=request.getContextPath()%>
- ${pageContext.request.contextPath} JSP路径问题
- <c:set var="ctx" value="${pageContext.request.contextPath}" />的学习
- <c:set var="ctx" value="${pageContext.request.contextPath}"/>是什么意思
- Jsp页面中路径问题(${pageContext.request.contextPath} JSP取得绝对路径)
- JavaScript中${pageContext.request.contextPath}取值问题及解决方案
- <c:set var="root" value="${pageContext.request.contextPath}"></c:set>According to TLD or attribute d
- <jsp:include page="${pageContext.request.contextPath}/xxx.jsp"></jsp:include> 引起引入错误
- 关于src中${pageContext.request.contextPath}不能识别的问题