Web环境下instance.getClass().getClassLoader().getResource(String path)路径问题
来源:互联网 发布:saas软件服务 编辑:程序博客网 时间:2024/06/03 05:30
项目目录如下
goods
-WebRoot
-WEB-INFO
-lib
-classes
-com
-lang
-user
-user.java
-service
-service.java
-1.properties
-2.properties
-web.xml
-js
-css
-index.jsp
-META-INFO
-src
-com
-lang
-user
-user.class
-service
-service.class
-1.properties
-2.properties
下面以service层为例来获取配置文件:
Service service = new Service();
// 1.当前类的包路径
URL s1 = service.getClass().getResource("");
// file:/E:/MyEclipseWorkspace/goods/WebRoot/WEB-INF/classes/com/lang/service/
System.out.println(s1);
// 2.如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始查找。
URL s2 = service.getClass().getResource("/");
// file:/E:/MyEclipseWorkspace/goods/WebRoot/WEB-INF/classes/
System.out.println(s2);
// 3. ClassLoader.getResourceAsStream() 无论要查找的资源前面是否带'/' 都会从classpath的根路径下查找
URL s3 = service.getClass().getClassLoader().getResource("");
// file:/E:/MyEclipseWorkspace/goods/WebRoot/WEB-INF/classes/
System.out.println(s3);
// 4. ClassLoader.getResourceAsStream() 路径中不可以带"/"
URL s4 = service.getClass().getClassLoader().getResource("/");
// null
System.out.println(s4);
// 例如获取1.properties文件
URL s5 = service.getClass().getResource("1.properties");
// 或者
URL s6 = service.getClass().getClassLoader().getResource("1.properties");
s5 = s6 = file:/E:/MyEclipseWorkspace/goods/WebRoot/WEB-INF/classes/1.properties
// 获取该文件的流形式
InputStream ins1 = service.getClass().getResourceAsStream("/goods.sql");
// 或者
InputStream ins2 = service.getClass().getClassLoader().getResourceAsStream("goods.sql");
/*
* 总结
1. Class.getResource(String path) :
path 不以'/'开头时默认是从此类所在的包下取资源,以'/'开头则是从ClassPath(classes目录下)根下获取。
其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
2. Class.getClassLoader.getResource(String path) :
默认则是从ClassPath根下获取,path不能以'/'开头,最终是由ClassLoader获取资源。
3. ServletContext. getResourceAsStream(String path):
默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。
*/
- Web环境下instance.getClass().getClassLoader().getResource(String path)路径问题
- this.getClass().getClassLoader().getResource路径位置
- this.getClass().getClassLoader().getResource();
- this.getClass().getClassLoader().getResource("");
- Class.getResource(String path)路径问题
- java-getClass().getResource()与getClassLoader().getResource()
- [java]getClass()、getClassLoader()、getResource()、getResourceAsStream()区别
- Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
- Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
- Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
- java文件路径问题及getResource和getClassLoader().getResource的区别
- class.getClassLoader().getResource 路径有空格
- Java class.getClassLoader().getResource("")获取资源路径
- Java class.getClassLoader().getResource("")获取资源路径
- class.getResource和class.getClassLoader().getResource()路径对比
- getClassLoader & getResource
- getClass().getClassLoader()
- Class.getResource()、ClassLoader.getResource()和this.class.getClassLoader()及.getClass()和.class
- 将小写字母转换为大写字母
- Oracle:大对象LOB
- IEEE 802.15.4的信道接入机制<一>基础、信标和非信标帧网络
- 四周第五次课 2017.11.10 zip压缩工具、tar打包、打包并压缩
- 线上入门教程《Linux就该这么学》整理成书 五折预售
- Web环境下instance.getClass().getClassLoader().getResource(String path)路径问题
- struts2 配置详解
- ANR
- jQuery用户信息的添加和删除
- sqlalchemy操作
- xiaoxin juju needs help HDU
- 图像处理之区域标记
- C++新式的字符串字面常量
- 函数调用