我正在使用Tomcat作为容器编写Java servlet,该Java servlet创建并向最终用户提供PDF文件。当前,PDF文件是在内存中创建的,并作为对POST的响应写出。
我想对此进行一些更改,以便将PDF文件写入磁盘(以便以后可以再次使用它们)。我在为此找到合适的“方法”时遇到了麻烦。
如何配置我的servlet以从目录服务器端写入和读取文件? 从阅读的内容来看,$CATALINA_BASE出于安全原因,我认为需要将此目录放置在“爆炸的Webapp”所在的外部位置,并且需要使用a Context或类似名称。
$CATALINA_BASE
Context
您可以只使用通常的FileOutputStream和FileInputStream类分别写入磁盘和从磁盘读取数据。更改要生成的PDF生成器,FileOutputStream并更改要读取的文件servlet FileInputStream。
FileOutputStream
FileInputStream
而且,的确,您希望将这些文件存储在webapp之外,否则,每当您重新部署webapp时,它们都会丢失。您不需要ServletContext,仅将相对Web路径转换为绝对磁盘文件系统路径很有用。将其存储在Webapp外部时不需要它,即已经知道磁盘文件系统的绝对路径。
ServletContext