【问题标题】:How can I access image by calling URL from a webapp如何通过从 web 应用调用 URL 来访问图像
【发布时间】:2014-12-07 05:45:39
【问题描述】:

我在 tomcat 上部署了一个 webapp (abc.war),并且有一个图片文件夹,在这几张图片下面,我可以通过 URL 访问这些图片:xx.xx/abc/image/hello.jpg

该项目正在实时运行,但我无法了解这些图像是如何检索的。

现在我在 tomcat 中部署了另一个基于 REST 的项目,我想要类似的行为,例如 xx.xx/hellorest/images/anil.jpg,但现在我无法使用上面的 URL 访问。

需要帮助如何实现。我不想使用任何 Servlet 来读取和写入 Image。

【问题讨论】:

  • “有一个图像文件夹”:在哪里? xx.xx 是什么?怎么样...将图像放在 war 文件中,在名为 images 的文件夹中(假设 xx.xx 是主机名,hellorest 是您的 web 应用程序的比赛路径)?
  • 是的,图像是 abc.war 中的文件夹,图像是 hellorest.war 中的文件夹。 xx.xx 是主机名,abc 和 hellorest 是这两个应用程序的不同上下文路径。 image/images 文件夹与 WEB-INF 文件夹并行。
  • 所以,这应该可以工作,除非您有一个映射到 /images/*/ 的 servlet,因此将被调用而不是默认的 servlet 服务静态文件。当你转到/hellorest/images/anil.jpg 时会发生什么?
  • 当我调用 /hellorest/images/anil.jpg 然后我得到以下错误 - HTTP 状态 404 - 未找到
  • 问题已解决,当我添加 default/images/*mapping> 问题是,在 web.xml 中,所有 request(/*) 都通过 Jersey servlet。

标签: java rest tomcat jakarta-ee servlets


【解决方案1】:

首先,/WEB-INF 不能从外部访问。

其次,如果您使用 /images/temp.jpg,浏览器将从网络服务器的根目录加载图像,而不是从您的网络应用程序的根目录(部署在上下文路径下)。

使用 JSTL 标签从 web-app 的根目录生成绝对路径: " alt=.../>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-21
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    相关资源
    最近更新 更多