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

绝对路径:是从盘符开始的路径,形如
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处理的路径。

所以告诫大家,请尽可能多的使用相对路径

时间: 2024-08-31 19:26:37

相对路径与绝对路径 ${pageContext.request.contextPath}的相关文章

Jsp中使用绝对路径${pageContext.request.contextPath }

  我们先来看项目这样一个应用     我们在index.jsp中想要引入Scripts,css包中的文件,怎么办,为了避免复杂的相对路径,公司一般采用绝对路径,来看代码:   <link rel='Stylesheet' href='${pageContext.request.contextPath }/css/index.css' /> <script src='${pageContext.request.contextPath }/Scripts/Utility.js'   typ

jsp-什么时候需要加${pageContext.request.contextPath}?

问题描述 什么时候需要加${pageContext.request.contextPath}? <jsp:include page="/pages/pub/cardRead.jsp"/> <script type="text/javascript" src="${pageContext.request.contextPath}/resource/scripts/formUtils.js"/> 为什么引入jsp文件不加${p

jsp页面中用到${pageContext.request.contextPath}报空指针异常

问题描述 jsp页面中用到${pageContext.request.contextPath}报空指针异常 起初是jsp中红色感叹号,报javax.servlet.jsp.jspException can not resolve a type 我加入了jsp-api.jar报后,就报图片中的空指针异常了 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding=&q

JavaScript中${pageContext.request.contextPath}取值问题及解决方案_javascript技巧

在JSP里取${pageContext.request.contextPath},方式一是可以正常取到,但方式二却取到的是 字符"${pageContext.request.contextPath}" 方式一: <script type="text/JavaScript"> var t = "${pageContext.request.contextPath}"; <script> 方式二: <script src=

Java相对路径与绝对路径的问题

 在写java程序时不可避免要获取文件的路径-总结一下,遗漏的随时补上     1.可以在servlet的init方法里     String path = getServletContext().getRealPath("/"):     这将获取web项目的全路径     例如 :E:eclipseM9workspacetree     tree是我web项目的根目录     2.你也可以随时在任意的class里调用     this.getClass().getClassLoad

servlet-在jsp中,requestscope和pagecontext.request有什么区别?

问题描述 在jsp中,requestscope和pagecontext.request有什么区别? 请教各位,从servlet转到jsp页面,如果request域对象中存在参数,在jsp页面为何pagecontext.request.getparameter("...")获取不到? 解决方案 你试试看pageContext.getRequest().getAttribute("name")能不能, pageContext 对象的作用是取得任何范围的参数,通过它可以获

ASP.NET将Web站点下的绝对路径转换为虚拟路径

asp.net|web|站点|转换 很经常使用到的一个功能,但在在网上却一直没有找到相关的解决方法,今天借着项目应用到的机会写了两个将绝对路径转换为虚拟路径封装好的方法将Web站点下的绝对路径转换为相对于指定页面的虚拟路径/**//// <summary>/// 将Web站点下的绝对路径转换为相对于指定页面的虚拟路径/// </summary>/// <param name="page">当前页面指针,一般为this</param>///

在Servlet与JSP中取得当前文件所在的相对路径与绝对路径

js|servlet //Servlet中 //JSP中的application对象就是Servlet中的ServerContext,所以在Servlet中是如此获得 //import java.io.File; System.out.println("根目录所对应的绝对路径:" + request.getServletPath() + ""); String strPathFile = request.getSession().getServletContext(

JSP、Servlet中的相对路径和绝对路径

js|servlet JSP.Servlet中的相对路径和绝对路径 JSP和Servlet中的绝对路径和相对路径问题困扰了我好几天,经过努力之后将其部分心得和大家共享. 前提:假设你的Http地址为http://192.168.0.1/你的web应用为webapp,那么你的web应用URL为http://192.168.0.1/webapp/ web应用的目录结构: webapp/ web-inf/ classes/ lib/ web.xml <servlet-mapping> <ser