项目出现了很奇怪的问题,在引入css文件时,发现:
1、${pageContext.request.contextPath}
<link href="${pageContext.request.contextPath}/resource/css/bootstrap.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/resource/css/bootstrap-theme.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/resource/css/login.css" rel="stylesheet">
会导致页面无法引入文件。下图是html源码显示
2、改用<%=request.getContextPath()%>后,就可以正常引入了
<link href="<%=request.getContextPath()%>/resource/css/bootstrap.css" rel="stylesheet">
<link href="<%=request.getContextPath()%>/resource/css/bootstrap-theme.css" rel="stylesheet">
<link href="<%=request.getContextPath()%>/resource/css/login.css" rel="stylesheet">
下图是html源码显示
对比2者发现完全没有区别,目前也没有发现原因是什么。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
${pageContext.request.contextPath}是el表达式版
<%=request.getContextPath()%>是javascript版
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
${pageContext.request.contextPath}, <%=request.getContextPath()%><br/> 获取到具体值到底是什么,他没有获取我想要的http://localName.com:port/项目名称(上下文)吗??通过实验我发现,只是简单做个测试,代码不规范:
1
2
|
"request.getContextPath()的值是 "<%=request.getContextPath()%><
br
/>
"pageContext.request.contextPath的值是"${pageContext.request.contextPath}<
br
/>
|
通过运行我们发现了<%=request.getContextPath()%>和${pageContext.request.contextPath}获取的结果都是项目名(上下文),而不是我们想要的那个结果,可是如果我们想要获取项目的绝对路径和端口号我们有什么办法呢
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
通过运行结果可知<%=basePath%>可知结果是
我们获取了我们想要的结果又完整的路径和端口号还有项目的上下文环境。推荐把项目中的${pageContext.request.contextPath}都替换成了<%=basePath%>。