我正在尝试在我的 web 应用程序之外显示存储在本地文件系统中的图像。以下问题:在 Java Web 应用程序中从应用程序服务器外部提供静态数据的最简单方法
编辑: 我希望文件位于 webapp 之外,因为这些图像是由用户上传的,如果我将它们放在 webapp 中,我可能会在重新部署 web 应用程序时丢失它们
但该文件未显示在网页上。当我尝试通过以下方式打开文件时:localhost:8080/images/imageName.jpg 它给了我一个资源不可用的错误。
我在 server.xml 中添加了上下文(遍历 Servers->Config->server.xml):
........
<Context docBase="DMSystemV1.0" path="/DMSystemV1.0" reloadable="true" source="org.eclipse.jst.jee.server:DMSystemV1.0"/>
<Context docBase="/Projects/SpringExample/Images" path="/images"/>
</Host>
我的 web.xml 也是这样的:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DMSystem</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DMSystem</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我希望它显示的地方:<img src="/images/${imagePath}" alt="Item's image">
Mytomcat 在:F:\Software\Servers\tomcat7\tomcat7 而镜像文件夹在:F:\Projects\SpringExample\Images
图像路径是相对于 tomcat 文件夹获取的吗?
另外,现在写我正在对上传路径(在我的上传 servlet 中)和 server.xml 中的下载路径进行硬编码,有没有办法将它们作为配置或设置信息提供?