Servlets 如何获取已部署web应用程序的目录?

Servlets 如何获取已部署web应用程序的目录?,servlets,struts2,Servlets,Struts2,如何获取struts2 web应用程序的当前工作目录 String currentDir = System.getProperty("user.dir"); String currentDir = new File(".").getAbsolutePath(); 返回/usr/share/tomcat 我需要web应用程序的路径,以便从war中读取文件 您需要获取ServletContext的实际路径: 也就是说,为什么要读取war文件中的文件,为什么要这样做 更喜欢将文件放在类路径上并使用g

如何获取struts2 web应用程序的当前工作目录

String currentDir = System.getProperty("user.dir");
String currentDir = new File(".").getAbsolutePath();
返回
/usr/share/tomcat


我需要web应用程序的路径,以便从war中读取文件

您需要获取ServletContext的实际路径:

也就是说,为什么要读取war文件中的文件,为什么要这样做

更喜欢将文件放在类路径上并使用
getResourceAsStream


我想获取当前目录以打开db.properties文件。但我发现了另一个问题:可以在web浏览器中查看db.properties文件和db password的内容。如何限制对db.properties文件的访问?如何使用getResourceAsStream获取db.properties?@EkaYuda直接访问属性文件的唯一方法是,该文件位于可公开访问的位置(已部署,但不在
WEB-INF
下),并且未经筛选。如果将属性文件放在可以直接访问的地方,那就太奇怪了。要使用getResourceAsStream获取文件,您需要遵循世界上关于如何使用getResourceAsStream的每一个教程。因此,我需要将db.properties放在WEB-INF?@EkaYuda中。如果您希望它放在类路径上,它应该放在
WEB-INF/classes
中,或者放在
WEB-INF/lib
中。相关: