Java Servlet - 下载并转发到页面

时间:2014-08-12 16:32:49

标签: java servlets

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

1 个答案:

答案 0 :(得分:2)

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

解决方案:

在您的客户端中,使用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>