最近开始接触Java web项目,选择的服务器是tomcat。
获取资源文件(利用getResource方法进行总结)
package com.temp;
public class TestGetResourceAsStream {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new TestGetResourceAsStream().getClass().getResource("/db.properties"));
System.out.println(new TestGetResourceAsStream().getClass().getResource(""));
//System.out.println(Class.getResource("/"));
System.out.println(new TestGetResourceAsStream().getClass().getClassLoader().getResource(""));
System.out.println(new TestGetResourceAsStream().getClass().getClassLoader().getResource("db.properties"));
}
}
打印结果如下:
file:/D:/Myeclipse%20Example/Shop/build/classes/db.properties
file:/D:/Myeclipse%20Example/Shop/build/classes/com/temp/
file:/D:/Myeclipse%20Example/Shop/build/classes/
file:/D:/Myeclipse%20Example/Shop/build/classes/db.properties
同一个web 应用下另一clss
package com.Resource;
public class Classloader {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new Classloader().getClass().getClassLoader().getResource(""));
System.out.println(new Classloader().getClass().getClassLoader().getResource("db.properties"));
}
}
web应用程序部署到tomcat中,tomcat会出现的目录
META-INF
WEB-INF
--classes //编写*.java 编程成.class WEB应用的package的顶层目录,也是所有.class的根目录“/”
--lib 库文件
iindex.jsp
class.getResource()中 当要搜索的资源文件中出现“/”,表明是从classes目录下寻找,没有"/" 表明是从当前类所在包下寻找
classloader.getResource() 表明直接从 .classes目录下寻找文件
请记住一点:就是你想获得文件,你得从最终生成的.class文件所在地为着手点,不要以.java文件的路径为出发点,因为所有的.java文件都要被翻译成.class (只能从类加载器来加载文件,类加载器选择的目录是 jvm翻译出.class文件的默认存放地)