絕對路徑、相對路徑、根路徑的區別和在盤符、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包中)

下面兩種方式的配置文件路徑是相同的作用,都能讀取到!不信你們可以去試試!

在這裏插入圖片描述
在這裏插入圖片描述


如果你覺得還滿意,可以點贊、關注一波哦!持續分享各種知識…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章