Java中路径的获取总结以及URL和URI的区别
原帖发表于:12-08-20 17:17
先描述一下资源的位置:我在src下建了一个cn.config的包,里面有Config.xml这个文件。来看这一段代码 www.cdtarena.com
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").toURI().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
对于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地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等