天天看点

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");

 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地址(有时也包括端口号)

③主机资源的具体地址。如目录和文件名等