java - 在 Web 应用程序中动态保存文件

标签 java servlets

我正在开发简单的 servlet 项目(在 eclipse 上)。 该代码适用于临时目录和 tmp 文件。 我的临时文件目录称为“tmp”,它位于我项目的 WebContent 目录中。

我想知道 - 如何获取“tmp”目录中文件的路径(然后我将其设置为属性并将其转发到负责输出的jsp)。

更新: 当我从该文件夹打开静态文件时 - 没问题。 但是动态创建的文件 - 它说的是: 请求的资源(/ASCIIART/tmp/res5252907236669575469.txt)不可用

最佳答案

事实上,你不应该这样做。我更喜欢 war 文件之外的文件系统位置。

原因是如果服务器重新启动(可能频繁或偶尔)或者您取消部署应用程序,tmp 中的所有文件实际上都会消失。这就是为什么您应该使用文件系统位置,例如 C:\appname\files

此方法的困难在于,容器/服务器无法自动处理您访问这些文件的请求。

但这种方法的优点是默认安全性,即没有人可以使用简单的 get 请求访问文件。

你可以BalusC file Servlet使用简单的 get 请求从本地文件系统获取文件。

此外,您可以将新文件路径保存到数据库中,并在需要时从该路径读取文件。

关于java - 在 Web 应用程序中动态保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37281344/

相关文章:

java - JSON解析性能慢

java - 如何为文本文件写一个单独的行

servlets - java.lang.IllegalStateException:提交响应后无法(转发| sendRedirect |创建 session )

java - 上下文是只读的

java - doFilter 调用了两次,预期的行为?

java - java中的执行器

java - NIO getParentFile().mkdir()

java - Tomcat servlet 问题 - 找不到类

java - php 和 servlet 应用程序之间的通信

java - 如何在Spring Security中实现不同类型的用户