java - 如何在 JSP 中访问 WEB-INF 中的文件?

标签 java jsp servlets

我正在使用 Tomcat。我想将配置文件放在 WEB-INF 中,而不是默认的根类路径 WEB-INF/classes。目前我将 config.xml 放在 WEB-INF 中,并使用以下相对寻址来定位它:

InputStream input = Thread.currentThread()
    .getContextClassLoader()
    .getResourceAsStream("..//config.xml");

这是正确的做法吗?

或者我应该先使用 getServletContext().getRealPath("config.xml") 吗?但是我不知道如何获取.java 中的getServletContext()。 (我试图通过 new HttpServlet 获取 getServletContext(),但是因为它是一个抽象类,不能被实例化...我如何获取 getServletContext()?)

最佳答案

getRealPath() 方法不能保证有效,例如如果您的 webapp 不是从 war 文件扩展的,则文件系统上没有到 war 文件内文件的“真实路径”。

既然你说你正在使用 ServletContextListener , 你可以从 ServletContextEvent 中获取 ServletContext :

sce.getServletContext().getResourceAsStream("/WEB-INF/config.xml");

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

相关文章:

java - Servlet 文件上传 ismultipartcontent 返回 false

java - Url Shortener 重定向到 index.html

java - 无法从另一个 JFrame 在 JTextField 中 setText()

java - 发送蓝色 : sending mail with attachement to sendinblue

java - cq5。如何显示作者的出版商列表? 5.5版本

java - 解析印地语数字时出现 NumberFormatException

java - css上的Spring资源映射问题

Javax.el.E​​LException : Failed to parse the expression 异常

java - java web应用程序中的文件上传显示文件未找到异常

java - 如何 "fix"损坏的 Java 字符串(字符集转换)