您的位置:首页 > 产品设计 > UI/UE

相对路径与绝对路径 ${pageContext.request.contextPath}

2018-03-27 10:30 225 查看
绝对路径:是从盘符开始的路径,形如

C:\windows\system32\cmd.exe

相对路径:是从当前路径开始的路径,假如当前路径为C:\windows

要描述上述路径,只需输入

system32\cmd.exe

实际上,严格的相对路径写法应为

.\system32\cmd.exe

其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。

假如当前路径为c:\program files

要调用上述命令,则需要输入

..\windows\system32\cmd.exe

其中,..为父目录。

当前路径如果为c:\program files\common files

则需要输入

….\windows\system32\cmd.exe

拿着这理解应该比程序里面好理解得多了。

${pageContext.request.contextPath}
等价于
<%=request.getContextPath()%>
或者可以说是
<%=request.getContextPath()%>
的EL版

意思就是取出部署的应用程序名或者是当前的项目名称

比如我的项目名称是SpringMVC 在浏览器中输入为
http://localhost:8080/SpringMVC/login.jsp


${pageContext.request.contextPath}
<%=request.getContextPath()%>
取出来的就是/SpringMVC,而”/”代表的含义就是http://localhost:8080

所以我们项目中应该这样写${pageContext.request.contextPath}/login.jsp

说一下亲身的例子大概就明白了。这里我先用的是相对路径,很多种情况下都没出错。



你看这个delete操作,我也是用的相对路径,那为甚么不会出错呢,因为请求路径只有一层,没有任何占位符,当HiddenHttpMethodFilter转换为DELETE请求的时候会去掉一层,所以不会出错,请求路径变成
http://localhost:8080/emp/1001




但是这个edit就不容乐观了。



本来路径上有占位符的存在,所以转换的时候就不会认全。



就会出现这样的闹剧,请求多层本来就没有Handler处理的路径。

所以告诫大家,请尽可能多的使用相对路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: