关于路径问题的详细讲解,大家耐心查看!
路径分类: 绝对路径、相对路径和根路径
绝对路径: 绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。比如: 我们熟悉的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包中)
下面两种方式的配置文件路径是相同的作用,都能读取到!不信你们可以去试试!
如果你觉得还满意,可以点赞、关注一波哦!持续分享各种知识…