java - 通知用户文件正在下载 servlet 中生成

标签 java servlets download long-running-processes

我有一个下载 servlet,它生成一个包含一些文件的 ZIP,其中一个文件相当大,然后在响应中发送生成的文件以供下载。

问题是生成过程相当大,在生成 de ZIP 的步骤和下载步骤(当用户看到下载对话框时)之间可能会经过很多秒甚至一分钟。所以我想无论如何通知用户文件正在生成。

我正在考虑的解决方案是执行多个请求,一个用于打开一个模式窗口,通知用户并在其中,然后自动对在临时位置生成文件的操作执行另一个请求,然后,当请求结束时,另一个请求关闭窗口(窗口必须自动关闭),然后向 servlet 请求下载最后一步中生成的文件。

如果有人理解我想要做什么,我希望是否存在更好、更干净的解决方案。

最佳答案

您可以触发一个 ajax 请求,该请求将启动生成过程,然后其他 ajax 请求将轮询服务器(如果文件已准备好)。如果是 - 将浏览器的位置更改为该文件。否则,显示“正在加载”消息/图像/..

关于java - 通知用户文件正在下载 servlet 中生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4802874/

相关文章:

java - 如何让 Aspect 触发带注释的函数?

javascript - 如何处理从nodejs服务器下载图像?

php - Laravel 5.1 中的数组到 CSV 文件下载

python - 如何让 Google App Engine 有一个从数据库下载内容的下载链接?

java - 在从 Java JAXB 注释类生成的模式中生成 XSD 限制

java - 使用 WINEPREFIX 的 ANT exec 任务

java - 使用Google Guava时打包JAR的主类抛出错误

java - JSP/javabean/servlet MVC

java - 如何在 Velocity 上配置 UTF-8?

css - 调用转发到 JSP 的 Servlet 时,浏览器无法访问/查找相关资源,如 CSS、图像和链接