0

我有一个简单的 Web 应用程序,它允许用户上传本地用户数据,然后他们可以从上传的数据生成 HTML 报告。生成 HTML 后,我会显示一个指向报告的链接,他们可以单击该链接在浏览器中查看,也可以与其他人共享该链接。

问题是我目前将“/Upload”文件夹放在“WEB-INF”文件夹中,因为我不希望外界可以访问该文件夹数据。然后,我将“报告”文件夹放在 Web 应用程序的根目录中。这很好,因为我可以将 WAR 文件部署到他们的服务器,用户可以上传文件,然后请求生成 HTML 报告。问题是当我在 WAR 文件中向他们发送软件更新时,它会删除 /MyWebApp 目录中的每个人,包括 /Upload 和 /Reports 文件夹。因此,用户必须重新上传数据,并且他们会丢失“/Reports”文件夹中的任何现有报告。

现在我确实通过这个讨论找到了 StackOverflow 上 /Upload 文件夹的答案。 我在哪里可以放置一个上传文件夹,这样当我在 Tomcat 中部署/取消部署站点时,该文件夹不会受到影响

但我仍然不知道将“/Reports”文件夹放在哪里?我想我必须像现在一样将它放在 Web 应用程序上下文目录中,以便 Tomcat 服务器将其作为链接提供(例如:http ://example.com/MyWebApp/Reports/report01.html )。

另一件需要注意的是,这个应用程序只在 Apache Tomcat 上运行,我没有通过 Apache 服务器的请求。我们决定让它在 Tomcat 的用户本地服务器上运行,因为它似乎更容易部署然后尝试部署和配置两者以协同工作。此外,每个服务器站点只有 2-3 人在使用此应用程序,在这种负载下,Tomcat 似乎在自己处理所有事情方面做得很好。那么也许这使解决方案变得更加困难?

任何对此有最佳实践的 hep 将不胜感激。

4

1 回答 1

0

您用于将上传文件放在磁盘上的策略与将报告放在磁盘上的策略应该没有区别:两者都是 webapp 在部署期间生成的文件(忘记客户端上传文件的事实)并且需要以同样的方式受到保护。

如果您愿意升级到 Tomcat 7,则有一个新<Context>属性 ,aliases它将允许您的 webapp 提供该目录中的内容,但在取消部署 webapp 时不会将其删除。

于 2012-06-11T20:39:59.650 回答