如何从Web存档的WEB-INF目录加载资源

Mic*_*les 57 java

我有一个Web档案,文件放在WEB-INF目录中.

如何在java类中加载该文件?

我知道我可以将它放在classes目录中并从那里加载它.它只会被放在WEB-INF中.

ska*_*man 87

getResourceAsStream()在ServletContext对象上使用该方法,例如

servletContext.getResourceAsStream("/WEB-INF/myfile");
Run Code Online (Sandbox Code Playgroud)

如何获得对ServletContext的引用取决于您的应用程序...您想从Servlet还是从JSP中执行此操作?

编辑:如果你在Servlet对象中,那么调用getServletContext().如果您在JSP中,请使用预定义变量application.

  • 如果你在Servlet中,你可以直接使用getServletContext().:) (12认同)

小智 7

以下是它对我的工作原理,没有使用Servlet.

假设我正在尝试访问project/WebContent/WEB-INF/web.xml中的web.xml

  1. 在项目属性Source-tab中,通过指向WEB-INF文件夹的父容器(在我的WebContent中)添加源文件夹

  2. 现在让我们使用类加载器:

    InputStream inStream = class.getClass().getClassLoader().getResourceAsStream("Web-INF/web.xml")
    
    Run Code Online (Sandbox Code Playgroud)