我的任务是保存并稍后读取web应用程序内文件中的一些任意数据。我不能使用硬编码的系统路径,因为可能在同一台服务器上启动了我的web应用程序的多个实例。我有一些限制,不能使用数据库来管理这个。所以,这里的问题是:是否有任何方法来保存与我的web应用程序实例使用servlet容器api关联的任意数据。我使用Tomcat 7,如果需要的话可以依赖它。
你可以这样做
- 在你的web应用下面新建一个文件夹,命名为webapp-data,放在web - inf文件夹
- 要访问这个路径,你可以这样做
- String outputFolder = getServlet().getServletContext().getRealPath("webapp-data")
- 虽然你在服务器/jvm上运行同一个web应用程序的多个实例,但你不能为所有这些web应用程序具有相同的上下文名称
- 创建一个新的文件名字符串fileName = getServlet().getServletContext().getServletContextName()
- String fullPath = outputFolder + File。pathSeparator + fileName + "。任何扩展";
- 创建具有完整路径的文件并写入它,它将是唯一的,也将绑定到您部署的web应用程序的实例。