Servlets 不使用ServletContext创建新文件

Servlets 不使用ServletContext创建新文件,servlets,Servlets,假设我想写入在我的webapp空间中创建的新文件 一种方法是使用getServletContext().getRealPath(“/”)并使用该字符串在服务器上创建新文件。然而,我经常遇到一些建议,比如不要使用getServletContext().getRealPath(“/”) 有人能告诉我在我的webapp中编写新文件的另一种方法吗 非常感谢。使用一些配置属性,其中包含webapp和web服务器路径之外的目录的绝对路径,从配置属性中读取此路径,然后写入此目录 要服务于此目录中的文件,请编写

假设我想写入在我的webapp空间中创建的新文件

一种方法是使用
getServletContext().getRealPath(“/”)
并使用该字符串在服务器上创建新文件。然而,我经常遇到一些建议,比如不要使用
getServletContext().getRealPath(“/”)

有人能告诉我在我的webapp中编写新文件的另一种方法吗


非常感谢。

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

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

这将

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

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

谢谢JB的回答。但是,如果我要部署到一个无法确定目录绝对路径的服务器上,那么我该怎么写文件呢。