时间:2011-08-23 12:16:03

标签: file web-applications tomcat servlet-container

我的任务是保存并稍后读取webaplication中文件中的一些任意数据。我不能使用硬编码的系统路径,因为我的webapp可能有多个实例在同一台服务器上启动。我有一些限制,不能使用数据库来管理这个。 所以,这里有一个问题:有没有办法使用servlet容器api保存与我的webapplication实例相关的任意数据。我使用Tomcat 7,如果需要可以依赖它。

1 个答案:

答案 0 :(得分:0)

你可以做这样的事情

  1. 在您的网络应用下创建一个文件夹,我们称之为webapp-data,将其保存在WEB-INF文件夹上
  2. 要访问此路径,您可以执行以下操作
  3. String outputFolder = getServlet()。getServletContext()。getRealPath(“webapp-data”)
  4. 虽然您在 server / jvm 上运行同一个网络应用的多个实例,但您不能为所有这些网络应用提供相同的上下文名称
  5. 创建一个名为String fileName = getServlet()的新文件.getServletContext()。getServletContextName()
  6. String fullPath = outputFolder + File.pathSeparator + fileName +“.any extension”;
  7. 使用完整路径创建文件并写入文件,它将是唯一的,并且将与您部署的Web应用程序实例绑定。