Java WEB应用程序中WEB-INF的路径

Java WEB应用程序中WEB-INF的路径,java,servlets,web-applications,Java,Servlets,Web Applications,我正在解析web应用程序中的HttpRequest。Myservlet扩展了HttpServlet 我需要在WAR文件中找到WEB-INF的路径,以便可以访问WEB-INF中的文件 我不能使用Realpath,因此必须有一些替代方案 试用 ServletContext servletContext = getServletContext(); InputStream input = servletContext.getResourceAsStream("/WEB-INF"); 但每次 Syse

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

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

我不能使用Realpath,因此必须有一些替代方案

试用

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

Sysem.out.println(input) returns null

请建议。

您可以按如下方式获取应用程序的根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")));

WEB-INF是一个目录。您希望上面的代码做什么?你为什么不试着访问一个文件,正如你的问题所问的那样?我需要访问WEB-INF文件夹中的文件。所以我需要至少到WEB-INF的路径。。这就是我想做的。我试过使用/ALLOW,但是流总是空的。所以,如果您需要加载文件foo.txt,您不认为路径应该是/WEB-INF/foo.txt吗?我不需要加载文件。我只需要文件的路径。该文件将由另一个引擎加载。我需要提供文件的路径。没有文件。它是war文件中的资源。您应该传递给引擎的是输入流。您应该做的是使用
servletContext.getResourceAsStream(“/webinffile.txt”)
获取InputStream。