相对路径和绝对路径的本质

来源:互联网 发布:手机淘宝名称怎么修改 编辑:程序博客网 时间:2024/06/03 03:21
相对路径和绝对路径:
绝对路径是以单个的文件为基础来讨论的,而相对路径是以两个文件之间的为基础来讨论的。
在讨论之前,我们必须要知道要访问电脑的文件的基本思想:
第一:我们要知道我们要访问那一台电脑(所有的联网的电脑IP号均有唯一性)
这里使用IP地址来获取,本地的电脑主机,用localhost即可(localhost),而非本地的主机可用他的ip号来访问(133.13.136.137)。
第二:从网络层知道那一台电脑,我们要访问该电脑的文件,还需要通过他的硬件地址来访问该电脑的文件。
比如本机电脑c盘 a文件夹,a.text文件。硬件地址是C:/a/a.text文件。那么他的网络地址和硬件地址和就是http://localhost/c/a/a.text。(非本地的用IP号代替localhost)
或许有人觉得地址形式和平常项目不一样,下面进行详解
绝对路径
http://IP/c......... 这是最直观的电脑文件访问方式。IP表示ip地址,如果是本电脑,常用localhost表示,比如本机电脑c盘 a文件夹,a.text文件。可以用来表示,http://localhost/c/a/a.text。其中http://是http协议的规定。ip地址是从网络层来定位你的电脑,绝对路径,就是来访问你电脑的硬盘存储的地址。
当然还有一种访问形式,当你电脑容器开启的时候,可以通过容器的端口号进行访问。比如我们java开发,tomcat容器地址常用的写法
http://localhost:8080/Work/index.jsp //这就是我们常见的一种地址访问方式。其中8088是Tomcat当初设置的端口号,
注意在前面讲到,访问文件,需要网络地址和硬件地址(盘符开始)组成的绝对路径。但是这里只有8080这个端口号。没有c/.....,其实这就是一种相对路径的表示方法。回忆一下在安装tomcat之前是不是也有安装路径,在该路径下是不是能找到你写的项目。这个疑问我们先放在脑子里看看下面的绝对路径。
相对路径:
上面讲到,相对路径是两个文件之间来讨论的,比如A文件相对应B文件的位置。(本质上也是绝对路径访问)
这里我们以tomcat的项目来讨论。
比如 work项目Webroot目录下的a.jsp页面跳转到b.jsp页面。
1:我们访问a.jsp页面。http://localhost:8080/work/a.jsp 通过绝对路径可以访问a.jsp页面
2:我们在 a.jsp页面 加一个<a href="b.jsp"> 跳转</a>,这里就可以跳转到b.jsp页面,在这里我们观察地址栏的地址改变为http://localhost:8080/work/b.jsp。是不是绝对路径????那为什么我们在写跳转的时候,只写了b.jsp。因为访问文件本质上均为绝对路径,而相对路径只是复用了之前的文件的绝对路径下的地址,也就是省略了http://localhost:8080/work/, 也就是说 b.jsp相对于a.jsp的文件路径是一样的 http://localhost:8080/work/所以我们在地址栏上看见的地址是绝对路径
http://localhost:8080/work/b.jsp。
还有两点可以简单验证:
1:../ 是代表上一级目录,是不是在本级目录上基础来确定上一级
2:创建项目的时候,自动生成的index.jsp里面的代码就是可以获取绝对路径
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
在回到之前的8080的端口,其实也是绝对路径,只不过用8080代替了tomcat存储的绝对路径。如你在C:/a/a/b/webapps/:就是你安装tomcat文件的webapps文件下可以找到你的所有写的项目,8088只是把绝对路径c:/a/a/a/给省略了,因为8088端口就是指向该绝对路径下。






原创粉丝点击