【问题标题】:Java Servlet - Download and Forward to a pageJava Servlet - 下载并转发到页面
【发布时间】:2014-10-05 19:56:56
【问题描述】:

我正在尝试发送下载,然后转发到页面。但是一旦下载完成,转发就不会发生。

【问题讨论】:

  • 你能给我们看看代码吗?
  • @sᴜʀᴇsʜᴀᴛᴛᴀ 代码没有问题。
  • 你是如何发送下载的。你在用Content-Disposition" : "attachment; filename=...");吗?

标签: java servlets


【解决方案1】:

这是正常行为。文件下载会将文件内容写入响应并关闭响应流,转发将尝试在已关闭的响应上写入新内容,导致响应中没有写入任何新内容。

解决方案:

在您的客户端中,使用 JavaScript 触发文件下载,同时触发对您要转发的页面的请求。

客户端代码改编自这里:Download a file and redirect...or alternative

<script>
function thanks() {
    setTimeout(function () {
        document.location.pathname = "another.jsp";
    }, 1000);
}
</script>

<a href="${request.contextPath}/yourServlet?file=foo.dat" onclick="thanks()">Download now!</a>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多