|
|
1
13
不推荐从JavaEE容器写入文件系统,特别是如果需要处理写入数据时:
如果这是一个选项,我会将文件存储在数据库中或使用JCR存储库(如 Jackrabbit ) |
|
|
2
20
根据规范,保证从servlet容器获得的唯一“真实”路径是临时目录。
你可以通过
如果您只是需要一个地方来存储一个工作文件很短的时间,那么这将对您工作良好。
如果你真的需要一个目录,你可以把它变成一个配置参数(一个环境变量,一个Java属性)。
但是,如果以后需要实际提供该文件,则需要特定于容器的机制将外部目录“挂载”到web应用程序中(glassfish作为“备用文档根”,其他的有类似的概念),或者需要编写一个servlet/过滤器来提供文件存储你的网络应用程序的侧面。这个 FileServlet 是相当完整的,正如你所看到的,创建你自己的,虽然不难,但要做正确的不是小事。 编辑: 基本要点是相同的,但是不要使用“getrealpath”,只需使用“getinitparameter”。 所以:
在路上。 再次编辑: 至于路径的内容,我会给它一个绝对路径。否则,在执行过程中,您需要知道app服务器将其默认路径设置到哪里,并且每个app服务器很可能使用不同的目录。例如,我认为glassfish的工作目录是运行域的配置目录。不是特别明显的选择。 所以,一定要用绝对路径。这样,您就知道文件将放在哪里,如果需要,您可以在操作系统级别上控制该目录的访问权限。 |