我正在尝试在Eclipse中的Dynamic Web Project中使用相对路径。我不是在Servlet中使用它们,而是在Servlet调用的另一个类中。我尝试访问的文件是位于
中的属性文件 MyProject/WebContent/WEB-INF/propertyFile.properties
我几乎尝试了所有相对路径......
WebContent/WEB-INF/propertyFile.properties
/WebContent/WEB-INF/propertyFile.properties
./WebContent/WEB-INF/propertyFile.properties
MyProject/WebContent/WEB-INF/propertyFile.properties
/MyProject/WebContent/WEB-INF/propertyFile.properties
WEB-INF/propertyFile.properties
/WEB-INF/propertyFile.properties
./WEB-INF/propertyFile.properties
......等等......我该怎么办?
提前致谢!
答案 0 :(得分:2)
您需要了解文件IO从文件系统读取文件,以及相对于启动JVM(即您的Web容器)的目录。< / p>
请记住,一旦您的应用程序部署到生产环境,就不会有任何MyProject或WebContent文件夹。这就是您的开发机器上存在的内容。生产中唯一存在的是部署在应用程序服务器中的war文件。
您真正想要的是加载位于已部署的Web应用程序中的资源(即位于war文件中的资源)。
为此,您必须使用ServletContext.getResourceAsStream():
InputStream in = servletContext.getResourceAsStream("/WEB-INF/propertyFile.properties");