不使用ServletContext创建新文件

时间:2013-07-09 13:10:33

标签: servlets

假设我想写一个在我的webapp空间内创建的新文件。

一种方法是使用getServletContext().getRealPath("/")并使用该String在服务器上创建新文件。但是,我经常会遇到不使用getServletContext().getRealPath("/")的建议。

有人可以告诉我在webapp中编写新文件的其他方法吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

让一些配置属性包含webapp和web服务器路径之外的目录的绝对路径,从配置属性中读取此路径,然后写入此目录。

要从此目录提供文件,请编写一个将此文件的名称或ID作为参数的servlet,从目录中读取文件,并将其内容发送到响应。

这将

  • 即使应用程序部署为war文件且从未解压缩到文件系统
  • 也能正常工作
  • 允许您重新部署应用程序或服务器的下一个版本,而不删除所有上传/创建的文件
  • 允许您在上传/创建的文件中添加您想要的任何控件,而不是让所有人都可以使用

简而言之,将这些文件视为数据,存储在恰好是文件系统而非SQL数据库的数据库中。