我有一个简单的Web应用程序,允许用户上传本地用户数据,然后他们可以从上传的数据生成HTML报告。生成HTML后,我会显示一个指向报告的链接,他们可以点击这些链接在浏览器中查看,也可以与他人共享链接。
问题是我目前将“/ Upload”文件夹放在“WEB-INF”文件夹中,因为我不希望外部世界可以访问该文件夹数据。然后我将“Reports”文件夹放在Web应用程序的根目录中。这项工作很好,我可以将WAR文件部署到他们的服务器,用户可以上传文件,然后请求生成HTML报告。问题是,当我在WAR文件中发送软件更新时,它会删除/ MyWebApp目录中的所有人,包括/ Upload和/ Reports文件夹。因此,用户必须重新上传数据,并在“/ Reports”文件夹中丢失任何现有报告。
现在我通过此讨论找到了StackOverflow上/ Upload文件夹的答案。 Where can I put an uploading folder so that when I deploy/undeploy the site in Tomcat that folder won't be affected
但我仍然不知道在哪里放我的“/ Reports”文件夹?我认为我必须将它放在Web应用程序上下文目录中,因为我现在正在做,以便Tomcat服务器将其作为链接提供(例如:http://example.com/MyWebApp/Reports/report01.html)。
另外需要注意的是,此应用程序仅在Apache Tomcat上运行,我没有请求通过Apache服务器。我们决定让它在Tomcat的用户本地服务器上运行,因为它似乎更容易部署,然后尝试部署和配置两者协同工作。此外,每个服务器站点只有2-3人使用此应用程序,并且通过该负载,Tomcat似乎在处理所有内容方面做得很好。那么也许这会使解决方案变得更加困难?
任何对此有最佳实践的人都将不胜感激。
答案 0 :(得分:0)
用于在磁盘上放置上传文件的策略与在磁盘上放置报告之间应该没有区别:两者都是webapp在部署期间生成的文件(忘记了客户端上传文件的事实)并且需要以同样的方式得到保护。
如果您愿意升级到Tomcat 7,则会有一个新的<Context>
属性aliases
,它允许您的webapp提供该目录中的内容,但在取消部署webapp时不会将其删除