Jsp 清理tomcat服务器会删除相对路径上的所有文件夹

Jsp 清理tomcat服务器会删除相对路径上的所有文件夹,jsp,tomcat,Jsp,Tomcat,我正在从事一个Web项目,在这个项目中,我在eclipse的WebContents文件夹下创建了一个名为“images”的文件夹。在该文件夹中,我存储用户上传的图像,并使用相对路径存储图像 “字符串webAppPath=request.getServletContext().getRealPath(“/images”)” 但当出于任何原因清理tomcat服务器时,存储在“images”文件夹下的所有文件夹或图像都会被擦除 请建议是否有任何解决方案,以便不会删除所有图像或文件夹。两项建议: 不要使

我正在从事一个Web项目,在这个项目中,我在eclipse的WebContents文件夹下创建了一个名为“images”的文件夹。在该文件夹中,我存储用户上传的图像,并使用相对路径存储图像

“字符串webAppPath=request.getServletContext().getRealPath(“/images”)”

但当出于任何原因清理tomcat服务器时,存储在“images”文件夹下的所有文件夹或图像都会被擦除

请建议是否有任何解决方案,以便不会删除所有图像或文件夹。

两项建议:

  • 不要使用
    ServletContext.getRealPath
    。这是一种架构错误的使用方法。它确实应该从servlet规范中清除

  • 将文件存储在部署目录之外的某个位置,取消部署时不会删除这些文件

  • 更新2017-01-23

    为了将文件返回给您(上传后),您需要将URL空间的一部分映射到应用程序中。使用Tomcat8和更高版本最简单的方法是使用资源映射器

    <Resources>
      <PostResources base="/real/path/to/images"
                className="org.apache.catalina.webresources.DirResourceSet"
              webAppMount="/images" />
    </Resources>
    
    
    

    这将导致当客户端请求
    /images
    URL空间中的内容时,
    DefaultServlet
    从您的
    /real/path/to/images
    目录提供文件。

    感谢rply…现在我尝试使用上下文路径将图像存储在g:\workspace\Projectname\images下…它们仍然存在,但我无法实现在另一个jsp中显示它们。。。我将图像名称存储到数据库(mysql)中。请建议我如何检索它们。请给出一个JSP代码示例。你大概有一个
    属性,看起来像什么?