Java中路徑的獲取總結以及URL和URI的區別
先描述一下資源的位置:我在src下建了一個cn.config的包,裏麵有Config.xml這個文件。來看這一段代碼
package cn.test;
import java.net.URISyntaxException;
import java.net.URL;
public class PathTest
{
public static void getURL()
{
URL url = PathTest.class.getClassLoader().getResource("");
System.out.println(url);
}
public static void getURL2()
{
URL url = PathTest.class.getClassLoader().getResource("cn/config/Config.xml");
System.out.println(url);
}
public static void getURI() throws URISyntaxException
{
String uri = PathTest.class.getClassLoader().getResource("cn/config/Config.xml").getPath();
System.out.println(uri);
}
public static void main(String[] args) throws URISyntaxException
{
getURL();
getURL2();
getURI();
}
}
對於Java項目的結果
file:/E:/mydir/PathTest/bin/
file:/E:/mydir/PathTest/bin/cn/config/Config.xml
/E:/mydir/PathTest/bin/cn/config/Config.xml
bin文件夾中放的是.java被編譯後的.class文件,若是普通文件就按照路徑自動拷貝的bin文件夾下,類加載器在加載.class的時候把普通文件也一起加載了。web項目也是同樣的道理,隻是文件夾不同。
對於Web項目的結果
file:/E:/mydir/PathTest_Web/WebRoot/WEB-INF/classes/
file:/E:/mydir/PathTest_Web/WebRoot/WEB-INF/classes/cn/config/Config.xml
/E:/mydir/PathTest_Web/WebRoot/WEB-INF/classes/cn/config/Config.xml
對於Servlet,Action取到項目裏的路徑和上麵一樣,如何取到在服務器的值呢?比如在tomcat裏麵的值呢?
String path = ServletActionContext.getServletContext().getRealPath("/");
那麼URI和URL有什麼區別呢?
URI—Universal Resource Identifier通用資源標誌符
Web上可用的每種資源如HTML文檔、圖像、視頻片段、程序等都是一個來URI來定位的
URI一般由三部組成
①訪問資源的命名機製
②存放資源的主機名
③資源自身的名稱,由路徑表示,著重強調於資源。
URL—Uniform Resource Location統一資源定位符
URL是Internet上用來描述信息資源的字符串,主要用在各種WWW客戶程序和服務器程序上,特別是著名的Mosaic。
采用URL可以用一種統一的格式來描述各種信息資源,包括文件、服務器的地址和目錄等。
URL一般由三部組成
①協議(或稱為服務方式)
②存有該資源的主機IP地址(有時也包括端口號)
③主機資源的具體地址。如目錄和文件名等
參考地址:https://www.cnblogs.com/helife/archive/2010/12/17/1908804.html
最後更新:2017-04-03 07:57:25