java - 如何访问java类中WEB-INF文件夹下的文件

标签 java jakarta-ee

我在 Web 应用程序中有一个纯 Java 类,想读取 WEB-INF 文件夹下的配置文件。如果文件在类路径中(WEB-INF/classes 文件夹),我知道访问该文件的方法。由于 WEB-INF/classes 文件夹是为 .class 文件准备的,所以我只想将我的配置文件保存在 WEB-INF 文件夹下。

谁能告诉我如何从我的 java 类访问它?

最佳答案

ServletContext.getResourceAsStream()将从相对于 WAR 文件根目录的给定路径加载文件。像这样的东西:

ServletContext ctx;
InputStream configStream = ctx.getResourceAsStream("/WEB-INF/config.properties");

这里的主要问题是您需要访问 servlet 上下文才能执行此操作。您在 servlet 或过滤器中有它,但在应用程序中的非 Web 组件中没有。您有几个选择:

  • 通过应用程序范围的变量、注入(inject)或其他方式,使 servlet 上下文从 Web 层到服务层可用
  • 将资源加载代码放在web层,暴露给服务层
  • 在web层加载配置,并传递给service层

关于java - 如何访问java类中WEB-INF文件夹下的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139315/

相关文章:

java - 使用 Jaxb 解码通用子项

java - 将自定义 Java 类添加到 Matlab 的更好方法?

java - Wildfly部署失败: JBAS014671 and WFLYCTL0080 - Access is denied

java - 将方法添加到数组列表并动态调用方法

javax.cache 自动删除条目

java - 如何在weka中将测试文档转换为训练词汇维度的 vector ?

java - 为什么我的代码输出数千次?

Javassist 与。 Java 编译器 API

web-services - Java EE 应用程序服务器中的 JAX-WS 客户端池

java - HttpServletResponse 响应 : Ask user to download file instead of auto downloading