绝对路径与相对路径

转载 2013年12月03日 00:47:53

 从.net中就会遇到找文件相对路径的问题, 每次都机械的去做, 没有思考没有总结.

 

        这次又遇到了, 在做分销商添加模块的时候,需要用Ajax调用验证分销商代码是否已经添加的servlet模块, Ajax在调用我们自己写的这个servlet的时候, 获取在请求的时候调用的url, 需要找到我们自己编写servlet的位置. 多次出现错误,每次都是请求失败,错误代码 404 , 从网上查看404 的问题,  xmlHttp.status 状态为404 的时候 ,错误在于 没有发现文件, 查询或者url, 所以猜想自己转到servlet的链接地址出现了错误,  查看链接地址, 发现是相对路径写错了. 

 

        径我们在中学学习物理课程的时候就接触过相对和绝对的概念, 比如物体的相对静止. 我们说当两个物体速度一样时, 我们可以说这两个物体是相对静止的. 坐在公交车里的乘客看到树在后退, 而在路边的人看到树是静止的, 而事实上,无论什么情况, 由于地球的公转,大树都在不停的运动着, 这是我们的绝对运动.    而我们计算机世界中又提到了这两个词, 在这里我们的绝对路径和相对路径是怎么一回事呢?

 

        绝对路径:

        计算机中的绝对路径是: 你的主页上的文件在硬盘上的真正的路径(URL和物理路径)

 

        相对路径:

        相对与某个基准的目录的路径. 包含web的相对路径, 例如 在web项目中"/"代表根目录.  "./ " 代表当前目录, "../"代表上一级目录, 这种类似的表示, 属于相对路径.

 

        这就相当于, 你们家的门牌号是绝对的, 不熟悉你的人, 问你的地址,你的籍贯,你会告诉你家的"绝对地址" , 河北省廊坊市XXXXXX, 而如果一个你知道是河北人问你的住址, 你不会再说河北省, 你会直接告诉他是哪个哪个市, 再比如你们是同一个市的,你会告诉他你在哪个哪个小区........和计算机中的相对路径和绝对路劲类似吧...嘿嘿

 

        使用绝对路径和相对路径的好处

 

        相对路径来说优点很明显了, 你把你的程序以及用到的资源放到任意一个地方都可以, 而绝对路径就不能随意移动资源文件夹啦.  使用相对路径方便, 不受资源文件位置的改变而改变.

 

        而有人就会问既然相对路径这么出色那为什么要用绝对路径呢? 俗话说: 存在即合理.就像世界上的万物一样存在就有它存在的价值, 再渺小也有自己的价值. 而对于我们的绝对路劲来说, 绝对路径网上也告诉了我们, 1 网站采用绝对路径可以防止被竞争对手恶意镜像. 2 可以确定首选域.. 3 如果网站不用相对地址, 那么当不同的域名同时解析一个网站时, 访问这么多域名, 内容一样. 这让搜索引擎分辨出到底哪一个是主站.

 

 

        具体相对路径的用法.

        第一种方法:

         " ./ " 是同级, " ../ "是上一级, "/"  是相对于根目录的, 看到一篇不错的文章:http://blog.csdn.net/beijiguangyong/article/details/7075982  让我们更加清晰了.

         例如, C:\site\index.html.   G:\siet\web\datas\a.html    

        1 如果index.html链接a.html       href地址为: C:\site是一样的, \web\datas\a.html

        2 如果a.html中链接index.html  href地址为:   ../../index.html.  因为index.html相当于a.html的上一级的上一级.

        

       

          第二种方法:

        我们可以把根目录定义为我们的"相对" , 从上述的例子可以看出, 相对路径相对的是相同的部分C:\site\ , 而我们也可以自己手动设置我们我的"参照物" (小女子这样理解的,不知道是否欠妥.....), 我们用html中的base标签进行设置.

 

        我们在jsp页面:

 

  1. <span style="font-family:Comic Sans MS; font-size:18px"><%  
  2.     String path = request.getContextPath();  
  3.     //默认成为根了.  
  4.     String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %></span>  

        request.getContextPath(): 得到项目的名字, 如果项目为根目录, 则得到一个"",即空字符串. 如果为 cccc, 则得到/cccc/服务器端自动加上.

        request.getScheme() :返回协议的名称 http, 和后面的:// 拼起来就成了http://

        request.getServerName(): 获取我们服务器的名称, 如果你的应用部署在本机那么就返回localhost或者127.0.0.1, 这两个等价.

        request.getServerPort(): 是我们使用的端口号, 比如8080 等.

我们把上面的拼接起来, 放到字符串变量basePath中, 也就是取得了根目录. 

 

 

        我们在html的<base>标签中设置相对值为根目录, <base>标签为页面上的所有链接规定默认的地址.  有了base后 , 我们设定了相对值, 就可以自己写全了. 这样貌似是"绝对路径" , 只不过提取出了相对值.

 

html页面head中:

  1. <span style="font-family:Comic Sans MS; font-size:18px">         <head>  
  2.         <base href="<%=basePath%>">  
  3.     </head></span>  


 

        用这种 "类似绝对路径" 方式,1   index.html链接a.html 地址为,  web\datas\a.html  ,  而  2    a.html链接index.html地址为: index.html ,就不用加../../啦.   这样的好处就是提取出了公共的部分, 避免写错相对层.

 

这两种方式的区别就像, 第一种是我们没有规定参照物都是从地球开始 , 第二种是我们规定了具体参照物, 但都属于相对~~~而非绝对~~~

绝对路径和相对路径区别

绝对路径:是从盘符开始的路径,形如 C:\windows\system32\cmd.exe 相对路径:是从当前路径开始的路径,假如当前路径为C:\windows 要描述上述路径,只需输入 sy...
  • tianzhaixing
  • tianzhaixing
  • 2013年05月07日 10:38
  • 1367

相对路径和绝对路径的优缺点

前面一篇文章,我讲了绝对路径 和相对路径 的含义和书写方法,于是会有些朋友问什么时候用绝对路径?什么时候用相对路径呢? 它们各自有什么优缺点? 其实何时使用绝对路径和相对路径...
  • tianhandigeng1498
  • tianhandigeng1498
  • 2010年12月02日 00:47
  • 4220

Java 绝对路径与相对路径,项目路径和ClassPath路径实战

package javatest; import org.junit.Test; import java.io.File; import java.io.InputStream; import j...
  • LANGZI7758521
  • LANGZI7758521
  • 2016年07月18日 14:33
  • 1000

linux学习相对路径与绝对路径

linux学习相对路径与绝对路径
  • pingdouble
  • pingdouble
  • 2016年02月17日 09:40
  • 1723

JavaWeb中的绝对路径和相对路径

前段时间自己也刚好遇到了这个问题,把相对路径改成绝对路径就没问题了,今天复习到这里就稍微总结一下。 使用绝对路径:使用相对路径可能会有问题, 但使用绝对路径肯定没有问题.  一、下面先...
  • ymfwj
  • ymfwj
  • 2016年08月08日 23:49
  • 4575

相对路径和绝对路径的区分

写了好多代码,可是yi
  • u012365843
  • u012365843
  • 2014年08月30日 20:38
  • 1131

linux下对绝对路径和相对路径的理解

假如你 要切换到当前目录下的 etc  目录中去 那么就用这个  cd  etc  这就是相对路径,而这种写法  cd  /etc 就是回到根目录下的etc 目录下 绝对路径 ,绝对路径文件前面多出一...
  • fengren_520
  • fengren_520
  • 2015年01月12日 15:05
  • 6653

java里绝对路径和相对路径的区别

转自:http://zhidao.baidu.com/link?url=FAmqfIqsR8oISZGZJA9nvXhNNe7XhcIdcgY1Ti6oN9RSiNjGy4CZBKe2kSgQB2j-...
  • suyu_yuan
  • suyu_yuan
  • 2016年10月04日 12:50
  • 3323

linux的绝对路径跟相对路径怎么解释

简单描述linux相对路径和绝对路径
  • HaveAJaguar
  • HaveAJaguar
  • 2015年05月18日 22:15
  • 629

相对路径和绝对路径的区别

绝对路径:是从盘符开始的路径,形如 C:\windows\system32\cmd.exe 相对路径:是从当前路径开始的路径,假如当前路径为C:\windows 要描述上述路径,只需输入 system...
  • toto1297488504
  • toto1297488504
  • 2014年02月12日 16:39
  • 1510
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:绝对路径与相对路径
举报原因:
原因补充:

(最多只允许输入30个字)