servlet实际文件结构
实际运行servlet和平常在eclipse感觉到的文件层次不一样,所以tomcat并不能读取在项目中新建的一些文件,这些情况表现在用的jar包必须包含在lib中,而不能自己新建一些文件夹去把这些文件夹里的jar包直接build path,运行servlet和运行平时的java路径不相同,
public class Test {
public void run() {
// TODO Auto-generated method stub
System.out.println("测试========》");
String s1=this.getClass().getResource("").getPath();
String s2=this.getClass().getResource("/").getPath();
System.out.println(s1);
System.out.println(s2);
}
public static void main(String[] args) {
new Test().run();
}
}
在平常的java会输出为
而在servlet中引用则会表现为
由此看到这俩个是完全不同的
而且还需要注意一点的是从/D:/eclipse/apache-tomcat-8.5.37-windows-x64/apache-tomcat-8.5.37/webapps/LuYin/WEB-INF/classes/ds/这个路径可以看出,里面包含的都是一些class文件
在他的往上一级却又properties文件,因此如果想访问文件的话,可以放到src的根目录下
访问的时候可以
InputStream in = this.getClass().getClassLoader().getResourceAsStream("db.properties");
Properties prop = new Properties();
try {
prop.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取数据库连接驱动
String aString = prop.getProperty("driver");
关于路径的事,可以参照Java中getResourceAsStream的用法 - 西晒甲山 - 博客园
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战