绝对路径、相对路径、根路径的区别和在盘符、Web中的应用(详解,附:getClassLoader().getResource()和getResource()的路径问题)

关于路径问题的详细讲解,大家耐心查看!


路径分类: 绝对路径相对路径根路径


绝对路径: 绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。比如: 我们熟悉的host文件路径为C:\windows\system32\host
Web中的绝对路径: 用在不同网站之间跳转,比如:http://www.baidu.com.image/sky.png


相对路径: 对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。使用相对路径可以为我们带来非常多的便利。比如: 同样是host文件路径的例子,假如当前路径为C:\windows,使用相对路径表示host文件路径为:system32\host(省略了".")
Web中的相对路径: 用在同一网站中,比如: image/1.jpg,仅限静态资源,如果页面比较多,并且使用框架,会出现混乱


.” 表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。比如: .system32\host是与host文件路径的相对路径相同的!
“. .” 表示父目录,比如: 假设我们当前路径为c:\program files想去找到host文件路径,我们需要输入 ..\windows\system32\host 。假如我们在c:\program files\Windows apps目录下,还是想去找到host文件路径的话,就需要输入..\..\windows\system32\host


根路径: 根路径也叫做根目录。根目录指逻辑驱动器的最上一级目录,它是相对子目录来说的。打开“我的电脑”,双击C盘就进入C盘的根目录,双击D盘就进入D盘的根目录。其它类推。根目录在文件系统建立时即已被创建,其目的就是存储子目录(也称为文件夹)或文件的目录项。一“棵“目录树,树的最根本就是它的根(根目录)。假设D盘下images文件夹里名称为apple.jpg的图片,那么根目录就可以写为img src="/images/apple.jpg"
Web中的根路径 : 网站根目录指的是一个服务器上同时放置多个站点使用,或者一个大规模站点需要放置在几个服务器上。" / “则表示根目录,比如: Web中指定就是主机名(服务器),/servletdemo/loginservlet,如果在浏览器中,” / " 表示主机名http://localhost:8080//loginservlet,如果在服务器中," / " 表示项目路径/servletdemo
注意:..” 也同样适用于表示根目录路径


明白了以上的路径问题,再来看getClassLoader().getResource()和getResource()的路径问题就简单了!

. getClass().getResource(file) : 表示只会在当前调用类所在的同一路径下查找该file文件
. getClass().getClassLoader().getResource(file): 表示只会在根目录下(/)查找file文件

可以这么理解: getClassLoader()表示的就是一个” / “。

举个例子说明: 我们去除掉getResource方法,只去观察getClassLoader方法的作用。当我们在Web中JDBC阶段用工具类自带的流去读中properties文件时,会设置路径,那时设置路径的方式就是根路径方式。(假设properties文件创建在src下,DBUtils工具类创建在com.xxx.java.utils包中)

下面两种方式的配置文件路径是相同的作用,都能读取到!不信你们可以去试试!

在这里插入图片描述
在这里插入图片描述


如果你觉得还满意,可以点赞、关注一波哦!持续分享各种知识…

发布了155 篇原创文章 · 获赞 337 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/weixin_44170221/article/details/105546946