一尘不染

存储Web应用程序临时数据的最佳做法

tomcat

我最新的项目能够从数据库生成包含信息的文档。

因此,我可以根据需要将文档模板复制到用户的临时文件夹中并进行修改。我这样做是因为修改期间每个模板都必须可用。

之后,通过我的webapp的下载链接为用户授予其文档。

我的问题:是否存在存储webapp数据的最佳实践?我认为温度会很好。但是由于我必须自己删除数据,因此我考虑将其放置在tomcat
webapp文件夹中的WAR文件夹旁边。

我将Windows 2003用作Tomcat的主机系统。我将Grails,Java和Maven用于我的项目…不知道是否需要此信息。

编辑:
我问这个琐碎问题的主要原因是…如果我负责创建/删除临时数据…在系统上使用temp文件夹是否仍然是一种好习惯?我对此不确定…


阅读 280

收藏
2020-06-16

共1个答案

一尘不染

在Webapp中存储(敏感)用户特定的文件时,请确保将其存储在某处,/WEB- INF并使用Servlet(间接)检查已登录用户的访问它们,否则,万维网上的任何用户/黑客都可以访问该文件。优点是可以很容易地通过ServletContext#getResource()或编程访问#getRealPath()。缺点是,每当您重新部署Web应用程序时,它们都会丢失。

您也可以将它们存储在默认的临时文件夹中。优点是可以通过标准API的like
File#createTempFile()或进行访问System.getProperty("java.io.tmpdir")。临时文件夹的缺点是无法通过Java控制操作系统控制的文件夹清理,因此,每当关闭资源但以后仍需要时,您可能会丢失丢失的内容。

您也可以将它们存储在webapp外部的固定文件夹中。它的优点是,每当您重新部署Web应用程序时,这些东西都不会丢失。缺点是您需要自己创建具有足够操作系统权限的文件夹,这可能不适用于第三方主机。

清理自己的临时资源当然属于您自己需要执行的任务。我不认为这是一个问题。

只是超过优点/缺点。

2020-06-16