gpt4 book ai didi

java - 使用 getSystemResource 从 servlet 访问文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:20 28 4
gpt4 key购买 nike

我想使用 getSystemResource 从 servlet 访问文件。这些文件驻留在项目本身和硬盘上。对于我使用的项目内的文件:

  ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream("/testing.txt");

如果我将文件放在 build/web 文件夹中,它就可以工作,但是当我清理并构建项目时,所有文件都会被删除。我应该把文件放在哪里?

对于项目外部的文件,我使用 File 对象:

 File file = new File("c://tmp//testing.txt");
InputStream is= new FileInputStream(file);

这是一个好的做法吗?

最佳答案

不应删除这些文件,除非您在应用仍在运行时在扩展的 WAR 中自己创建它们。那么当您重新部署 WAR 时,这些文件确实会被删除,因为它们不包含在原始 WAR 中。

通常的做法是将这些文件存储在 web 应用上下文之外的固定路径中。您绝对不应该为此使用 tmp/temp 文件夹。该文件夹可以由底层平台定期清理。例如使用 /var/webapp/upload。正确记录它,以便服务器管理员提前创建它。如果需要,可以通过一些 web.xml 参数对其进行配置。

或者,当环境不允许创建文件夹和/或写入磁盘时,最后的最佳选择是将这些文件存储在 SQL 数据库中。

关于java - 使用 getSystemResource 从 servlet 访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6059448/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com