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地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等

参考地址:http://www.cnblogs.com/helife/archive/2010/12/17/1908804.html

 

时间: 2024-10-31 15:26:14

Java中路径的获取总结以及URL和URI的区别的相关文章

java路径片段-java中路径的片段参数提取

问题描述 java中路径的片段参数提取 请问在java中有什么方法能方便解析URL的片段吗?例如URL:http//:localhost:8080/appname/user/123/age?param1&param2,我要获得路径user后的参数123,要用什么方法?难道只能老老实实解析字符串? 解决方案 Java各种路径和参数 解决方案二: 非常感谢,依据你的方法我已经把路径中的参数提取出来了.只是还有一个疑惑,http//:localhost:8080/appname/user/{userI

二进制-java中的64位数据和32位数据的区别

问题描述 java中的64位数据和32位数据的区别 之前在看数据之间的相互比较的时候,遇到这样一个问题 "数值间的相等比较,本质是比较他们二进制存储是否相等.例如:0.3f==0.3返回的是false(32位的2进制的0.3表示和64位的0.3表示是不同的):但是0.5f==0.5返回的是true(因为32位和64位的二进制表示是相同的)" 那么我怎么知道要比较的这两个数在32位和64位中是否相等呢,有什么办法吗> 本人初学java,还望给各位多多指点 解决方案 32位和64位下

java中线程同步,线程让步,线程休眠的区别和联系是什么

问题描述 java中线程同步,线程让步,线程休眠的区别和联系是什么 java中线程同步,线程让步,线程休眠的区别和联系是什么 线程的本质还是一个运行中的类, 解决方案 线程同步:是保证多线程安全访问竞争资源的一种手段,java中常用的是加锁机制即synchronized同步代码块实现的. 线程让步的方法是yield(),休眠方法是sleep().sleep()方法和yield()方法都是Thread类的静态方法,都会使当前处于运行状态的线程放弃CPU,把运行机会让给别的线程. 两者的区别在于:s

java接口-java中api即application program interface和interface有和区别和联系

问题描述 java中api即application program interface和interface有和区别和联系 java中api即application program interface和interface有和区别和联系 应用程序接口和接口有什么区别和联系 解决方案 api说的是你的系统提供给别的系统调用的方式和约定,是一个比较大的概念. interface说的是java语法上的接口.是一个比较小的概念.

Java中使用正则表达式获取网页中所有图片的路径_java

/** * 从HTML源码中提取图片路径,最后以一个 String 类型的 List 返回,如果不包含任何图片,则返回一个 size=0 的List * 需要注意的是,此方法只会提取以下格式的图片:.jpg|.bmp|.eps|.gif|.mif|.miff|.png|.tif|.tiff|.svg|.wmf|.jpe|.jpeg|.dib|.ico|.tga|.cut|.pic * @param htmlCode HTML源码 * @return <img>标签 src 属性指向的图片地址的

java中使用反射获取pojo(实体)类的所有字段值

       说起反射,不得不说它实在是太强大了,通过反射就可以轻轻松松拿到各种东东,如果你想在项目中解除对某个类的依赖,可以考虑用反射.        今天跟大家分享的是通过java中的反射,获取pojo类的所有字段值.        为什么要做这个操作的呢?主要是为了重写实体类的toString方法.有人会说,直接重写toString方法,返回字段.toString()的字符串不就行了.这么做的确可以,但是如果你的pojo类有上百个,上千个,你还要一个一个改吗?所以我们需要从新的方向去解决.

详解Java中super的几种用法并与this的区别_java

1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 复制代码 代码如下: class Base { Base() { System.out.println("Base"); } } public class Checket extends Base { Checket() { super();//调用父类的构造方法,一定要放在方法的首个语句 System.out.println("Checket"); }   public static v

Java中使用HttpRequest获取用户真实IP地址_JSP编程

在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.jb51.net / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110

Java中通过URLConnection获取Http响应Header信息

本文中演示如何通过URLConnection获取Http响应Header信息 1.从响应中获得Header信息 URL obj = new URL("http://www.bianceng.cn"); URLConnection conn = obj.openConnection(); Map<String, List<String>> map = conn.getHeaderFields(); 2.从响应Header中获取Server信息 Map<Str