如何在java Web应用程序中访问WEB-INF/META-INF中的文件?

Kor*_*gay 4 java tomcat classloader

所以我读的这本书说:

与JAR文件不同,根级别/ META-INF目录不在应用程序类路径上.您不能使用ClassLoader获取此目录中的资源.然而,/ WEB-INF/classes/META-INF位于类路径上.您可以将所需的任何应用程序资源放在此目录中,并且可以通过ClassLoader访问它们.

目前在WEB-INF目录下,我有一个META-INF目录和一个名为:test.txt的文件.

如何使用ClassLoader读取此文件?

我试过这个:

URL resource = this.getClass().getClassLoader().getResource("test.txt");
System.out.println(resource);
Run Code Online (Sandbox Code Playgroud)

但是这会返回null.

我知道该文件可以像:

InputStream resourceContent = getServletContext().getResourceAsStream("/WEB-INF/META-INF/test.txt");
System.out.println(resourceContent);
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.我想了解ClassLoader ..

谢谢.

Abh*_*war 5

试试这个:

URL resource=this.getClass().getClassLoader().getResource("META-INF/test.txt");
Run Code Online (Sandbox Code Playgroud)

因为您的/ META-INF位于您的根路径中,您将不得不使用META-INF/test.txt来访问它.