我试图在我的webapp外部显示存储在本地文件系统中的图像。 以下问题:Simplest way to serve static data from outside the application server in a Java web application在JSP中显示文件系统存储的图像
编辑:我想文件被外面的web应用导致这些图片是由网友上传,如果我把它们里面的webapp,当我重新部署Web应用程序
我可能会失去他们但该文件未显示在网页上。当我尝试打开文件:localhost:8080/images/imageName.jpg它给我一个资源不可用的错误。
我在server.xml中添加上下文(运行通过量服务器 - > 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 \服务器\ tomcat7 \ tomcat7 虽然图像文件夹为:F:\项目\ SpringExample \ Images
图像路径是相对于tomcat文件夹?
此外,现在写我对上传路径(在我的上传servlet中)和server.xml中的下载路径进行硬编码,有没有办法将它们提供为配置或设置信息?
*“我试图显示存储在本地文件系统之外的图像在我的web应用程序之外。”*为什么不将图像包含在Web应用程序中? –
虽然有解决方法,但Web应用程序通常不应/通常不应访问本地文件系统。您必须编写拦截请求的内容,从文件系统加载映像并将其返回。 – GreyBeardedGeek
@AndrewThompson:因为这些图片是由用户上传的,如果我重新部署web应用,它们可能会被删除 – Sudh