0

我正在开发一个将图像上传到 Apache Tomcat 服务器的 Web 应用程序。问题是每当我在服务器上进行更改时,它都会重新初始化,并且之前加载的图像会从服务器上的图像文件夹中删除。

我想知道在重新初始化服务器时是否可以进行任何配置来维护这些文件。

我在 localhost:8080 上运行它,版本是 Apache Tomcat v7.0。我也在 E​​clipse IDE 上开发它。

4

1 回答 1

0

答案基本上已经在评论中给出了,这里有更多的推理:

始终将上传的数据存储在 Web 应用程序之外的单独目录中。

原因之一正是您所发现的:应用程序的更新或重新部署将删除数据,否则。做备份是相当困难的。事实上,我建议不要让 webapp 目录完全可写入 tomcat,以减轻这个问题和下一个问题:

另一个问题是您正在向隐式服务器端代码注入敞开大门:想象有人将 jsp 上传到您的 Web 应用程序:这可能包含任意代码,除非您考虑过滤此类内容(没有人这样做,并且没有人在安全管理器/沙箱中运行 tomcat。当然这是一个简化)

此外,当您动态更新 webapp 数据时,您无法确定部署后上传了哪些数据,因此如果稍后上传更新,您将无法轻松将更新带回代码库:您基本上必须识别更改.

最后,您甚至不能假设 tomcat 总是解压缩 war 文件 - 有一个设置可以让 tomcat 直接从 war 文件中为应用程序提供服务,而无需将它们解压缩到 webapps。如果您不自己管理服务器,将平台更改为其他平台,或者将来 tomcat 的默认配置更改为此,您可能会感到困惑。

于 2013-04-20T15:29:11.737 回答