【问题标题】:path till WEB-INF inside web application直到 Web 应用程序内的 WEB-INF 的路径
【发布时间】:2015-03-10 05:50:38
【问题描述】:

我正在解析 Web 应用程序中的 HttpRequest。我的 servlet 扩展了 HttpServlet

我需要在 WAR 文件中找到直到 WEB-INF 的路径,以便可以访问 WEB-INF 中存在的文件。

我不能使用 Realpath,所以必须有一些替代方法。

尝试使用

ServletContext servletContext = getServletContext();
InputStream input = servletContext.getResourceAsStream("/WEB-INF");

但每次

Sysem.out.println(input) returns null

请提出建议。

【问题讨论】:

  • WEB-INF 是一个目录。你期望上面的代码做什么?正如您的问题所问的那样,您为什么不尝试访问文件?
  • 我需要访问 WEB-INF 文件夹中的文件。所以我需要至少到 WEB-INF 的路径。这就是我想要做的。我也尝试过 /,但流始终为空
  • 那么,如果你需要加载文件foo.txt,你不觉得路径应该是/WEB-INF/foo.txt吗?
  • 我不需要加载文件。我只需要文件的路径。该文件将由另一个引擎加载。我需要提供文件的路径。
  • 没有文件。它是战争文件中的资源。你应该传递给引擎的是一个 InputStream。你应该做的是使用servletContext.getResourceAsStream("/WEB-INFfile.txt") 获取 InputStream。

标签: java servlets web-applications


【解决方案1】:

您可以像这样获取应用程序的根 Web 目录:

servletContext.getRealPath(File.separator));

所以假设你的 WEB-INF 在那里,你可以这样做:

 servletContext.getRealPath(File.separator + "/WEB-INF/whatever.file"));

它返回一个字符串路径,所以要实际获取文件:

 new File(servletContext.getRealPath(File.separator + "/WEB-INF/whatever.file")));

【讨论】:

    猜你喜欢
    • 2013-02-01
    • 2015-03-20
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2013-11-27
    相关资源
    最近更新 更多