繁体   English   中英

如何获取运行时Web应用程序路径?

[英]How to get Runtime Web Application path?

在我的Web应用程序中,我在web文件夹中使用属性文件,我需要从同一应用程序中的java文件中引用属性文件以获取属性的值。 我该如何提供路径? 我需要路径名而不是URI。 我的代码如下:

    Properties prop = new Properties();
    FileInputStream propertiesStream = null;
    try {
        propertiesStream = new FileInputStream("..\Files\Prop.properties");
        prop = new Properties();
        prop.load(propertiesStream);
        prop.getProperty("id");
        propertiesStream.close();
    } catch (IOException ioException) {
        System.out.println("PropertiesLoader IOException message:" + ioException.getMessage());
    }

考虑到它是一个属性文件,我建议您从类路径中将其作为ResourceBundle获取。

例如,假设您将属性文件放在此处:

/WEB-INF/classes/MyProperties.properties

您可以使用以下代码获取它:

ResourceBundle props = ResourceBundle.getBundle("MyProperties");

或者作为Properties对象:

Properties props = new Properties();
InputStream is = getClass().getResourceAsStream("MyProperties");
props.load(is);
is.close();

如果你想阅读包中的属性文件,那么你应该使用 -

InputStream is = pageContext.getServletContext().getResourceAsStream("/props/env- props.properties");
BufferedReader reader = new BufferedReader(is);

获得推荐的读者后,您可以根据需要操作它。 这样你真的不需要servlet和web应用程序的路径。 上面的方法将在类路径中查找资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM