java - 文件的 WEB-INF 路径

标签 java servlets

我的 Web 应用程序的配置文件位于 \WEB-INF\etc\config 中。此文件夹包含一些属性文件和一个 xml。我需要在一个属性文件中设置 xml 的路径。设置此文件用于在服务启动期间创建对象后,此对象从文件中读取属性。因此,该对象必须知道属性文件中描述的所有文件的路径。如果属性文件和 xml 文件在同一目录中,我如何在属性文件中描述正确的路径?

谢谢。

最佳答案

通常的做法是将这些文件放在运行时类路径中或将其根路径添加到运行时类路径中。然后,您将能够通过 ClassLoader#getResource() 或作为 InputStream 通过 ClassLoader#getResourceAsStream() 获取资源。

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("filename.xml");

您需要在属性文件中指定的是 XML 文件的完整限定名称(类路径位置)。

如果你真的坚持那样摆弄磁盘文件系统路径,那么你需要指定相对于网络内容的路径(/WEB-INF 所在的文件夹),然后使用 ServletContext#getResource()ServletContext#getResourceAsStream() 获取资源。但是,这会添加对使用 XML 文件的代码的 ServletContext 依赖性。

关于java - 文件的 WEB-INF 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246963/

相关文章:

java - Struts 2 动态参数绑定(bind)

c# - 使用 C# 编写代码并构建成跨平台二进制文件? (iOS 和 Android)

javascript - 在 JSF 中将 JSON 写入 HTTP 响应

java:警告:迭代器是原始类型

java - Guice-servlet 单元测试

java - 读取文本文件并删除所有出现的重复项

java - Mono 对象未在 postman 中显示

java - 404 错误 : Resource not available jersey tomcat

java - 如何在Eclipse中自定义并触发Java编译错误

spring - 没有 servlet 不能自动启动 webapp