我正在开发一个将图像上传到Apache Tomcat服务器的Web应用程序。问题是每当我在服务器上进行更改时,它都会重新初始化并且之前加载的图像将从Server上的images文件夹中删除。
我想知道在重新初始化服务器时是否有任何可以维护这些文件的配置。
我在localhost:8080上运行它,版本是Apache Tomcat v7.0。我也在Eclipse IDE上开发它。
答案 0 :(得分:0)
答案基本上已在评论中给出,这里有更多的推理:
始终将上传的数据存储在Web应用程序之外的单独目录中。
其中一个原因正是您发现的:应用程序的更新或重新部署将删除数据。做备份非常困难。事实上,我建议不要将webapp目录写入tomcat,以缓解这个问题以及下一个问题:
另一个问题是你打算使用隐式服务器端代码注入:想象某人将jsp上传到你的web应用程序:这可能包含任意代码,除非你考虑过滤这种内容,否则会默默执行没有人在安全管理器/沙箱中运行tomcat。当然这是一个简化)
此外,当您动态更新您的webapp数据时,您无法分辨部署后上传了哪些数据,因此如果以后上传它们,您无法轻松地将更新恢复到您的代码库中:您基本上已经拥有识别变化。
最后,你甚至不能假设tomcat总是解压war文件 - 有一个设置让tomcat直接从war文件提供应用程序,而不会将它们解压缩到webapps。如果您不自己管理服务器,请将平台更改为其他内容,或者如果将来tomcat的默认配置更改为此,您可能会感到困惑。