我明白了。。谢谢。
这是发生的事情(恕我直言:)):
在 JSP 处理期间,变量被解析为某个静态路径并被传递给浏览器。
Browses 在此处呈现静态内容,一旦它看到路径,它就会向服务器发出额外的 http 请求,但您的服务器似乎无法静态找到您的图像。这是因为一旦部署,您就无法更改战争物理结构。就像您使用基于文件的 WAR 表示而不是使用分解的目录一样思考。
现在你能做什么?
尝试创建一个资源 servlet,该资源 servlet 将获取带入二进制图像的请求并将其返回。
在你的 web.xml 中注册这个 servlet,路径如 /resource 并使其获取 get 参数 imgName
例子
<img src="resource?imageName=${imageNameYouWant}" />
在您的 jsp 中,而不是 img src 标记中的静态内容调用带有图像作为参数的 servlet。当浏览器看到这一点时,它会像以前一样发出一个常规请求,但这次它会由您的资源 servlet 处理,并会带来图像。
我会尝试的另一件事是将图像文件夹移到 webapp 目录之外。此目录由您的 Web 容器自动跟踪,但没有理由也将图像存储在那里。
你这样做:
创建一个目录,如:/myapp/images
您仍然需要在服务器端创建一些组件。但是这次它可能可以通过在 Web 服务器端创建一些配置来完成(没有自定义 servlet)。当您使用第一种方法时,我不确定这是否会起作用......
正如我在上面已经解释的那样,在服务器上的 JSP 点中。
它是一个企业级的严肃应用程序,我会推荐第一种方法,将图像存储在数据库中,但它是一个不同的故事:)
希望这可以帮助