gpt4 book ai didi

java - 当我部署一个新的 WAR 文件时,我应该把应用程序生成的 HTML 报告放在哪里,它们不会被删除?

转载 作者:行者123 更新时间:2023-11-28 23:49:18 25 4
gpt4 key购买 nike

我有一个简单的 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 似乎可以很好地独立处理所有事情。所以也许这让解决方案变得更加困难?

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

最佳答案

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

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

关于java - 当我部署一个新的 WAR 文件时,我应该把应用程序生成的 HTML 报告放在哪里,它们不会被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10986803/

25 4 0