在 web 工程中,可以使用 ServletContext.getResource 或 .getResourceAsStream 来获取资源。资源路径由 “/” 开始,这个路径是个相对路径,对应 Web 工程的根目录,或 WEB-INF/lib 中 jar 包的 META-INF/resources 目录:
myApplication.war
WEB-INF
lib
library.jar
library.jar 有下面的包结构:
library.jar
MyClass1.class
MyClass2.class
stylesheets
common.css
images
header.png
footer.png
一般情况下,如果在 servlet 中要访问 stylesheets 和 images 文件夹中的资源,需要手动地将它们提取到 web 工程的根目录下。从 servlet 3.0 开始,允许将资源放入 jar 包的 META-INF/resources 目录下:
library.jar
MyClass1.class
MyClass2.class
META-INF
resources
stylesheets
common.css
images
header.png
footer.png
在上面例子中,资源放入了 META-INF/resources 目录中,因此不需要提取到根目录也能直接访问。
应用会先扫描 web 根目录下的资源,再扫描 jar 包中的资源,jar 包中资源的扫描顺序是不定的。
文章来源:[url]http://www.aptusource.org/2014/04/java-ee-7-resource-packaging/[/url]