访问位于 WEB-INF 文件夹中的资源
Accessing resources located within WEB-INF folder
我一直在开发一个简单的 Java Web 应用程序,其中包含 JSP 个文件。我一直在尝试通过 JSP 文件访问位于 css 目录中的资源文件和图像,该文件位于结果 WAR 文件.
项目结构是根据 Maven War Plugin 用法下的推荐结构创建的。我浏览了针对此论坛中类似问题提供的几种解决方案,但其中 none 适用于这种新结构。
例如,我们如何从位于上下文根目录中的 JSP 文件访问位于 WEB-INF/classes 目录中的资源?
如果您想通过 HTTP 访问这些资源,它们必须在别处 - 它们不能在 WEB-INF 中。该问题 会 重复,因为它已在其他地方多次回答(只需查找相关问题 link 即可了解此问题)。 Java 网络应用程序 永远不会 使 WEB-INF 下的任何资源都可以通过 HTTP 访问。
但是,由于您的问题是关于 "recommended" 标准文件结构的,让我告诉您您 link 的文档在哪里具有误导性:Any 资源in src/main/resources 将在类路径中结束,例如在 WEB-INF/classes。它不会最终出现在 Web 应用程序向全世界提供它的目录中。但是,该文档使用了一个图像,这表明该图像可以在 Web 应用程序中使用。它不能。您可以通过类加载器访问它,例如:SomeClassFromYourWebapp.class.getResourceAsStream()
。这通常用 .properties
文件、.xml
或在运行时处理的类似文件而不是图像来完成。我会说真正具有误导性的文档(但它是正确的,只是误导)
从技术上讲,这将回答您 "how do I access the resource from a JSP?" 的问题,因为您可以将此代码放在 JSP 中。我相信您的问题是要求通过 HTTP 处理资源。
的答案是:将您需要的可通过 HTTP 访问的资源移至 src/main/webapp
,并将它们排除在 WEB-INF
之外。否则它们只会在类路径上。
我一直在开发一个简单的 Java Web 应用程序,其中包含 JSP 个文件。我一直在尝试通过 JSP 文件访问位于 css 目录中的资源文件和图像,该文件位于结果 WAR 文件.
项目结构是根据 Maven War Plugin 用法下的推荐结构创建的。我浏览了针对此论坛中类似问题提供的几种解决方案,但其中 none 适用于这种新结构。
例如,我们如何从位于上下文根目录中的 JSP 文件访问位于 WEB-INF/classes 目录中的资源?
如果您想通过 HTTP 访问这些资源,它们必须在别处 - 它们不能在 WEB-INF 中。该问题 会 重复,因为它已在其他地方多次回答(只需查找相关问题 link 即可了解此问题)。 Java 网络应用程序 永远不会 使 WEB-INF 下的任何资源都可以通过 HTTP 访问。
但是,由于您的问题是关于 "recommended" 标准文件结构的,让我告诉您您 link 的文档在哪里具有误导性:Any 资源in src/main/resources 将在类路径中结束,例如在 WEB-INF/classes。它不会最终出现在 Web 应用程序向全世界提供它的目录中。但是,该文档使用了一个图像,这表明该图像可以在 Web 应用程序中使用。它不能。您可以通过类加载器访问它,例如:SomeClassFromYourWebapp.class.getResourceAsStream()
。这通常用 .properties
文件、.xml
或在运行时处理的类似文件而不是图像来完成。我会说真正具有误导性的文档(但它是正确的,只是误导)
从技术上讲,这将回答您 "how do I access the resource from a JSP?" 的问题,因为您可以将此代码放在 JSP 中。我相信您的问题是要求通过 HTTP 处理资源。
的答案是:将您需要的可通过 HTTP 访问的资源移至 src/main/webapp
,并将它们排除在 WEB-INF
之外。否则它们只会在类路径上。