如何解决异常:已经为此响应调用了getOutputStream()?

时间:2019-06-17 17:53:20

标签: java jsp servlets printwriter

我经历了关于相同/相似问题的答案/讨论,发现我应该使用“响应”方法一次下载文件或获取HTML页面。对于成功下载文件后的情况,我想显示成功警报消息。当我使用“响应”方法下载文件并打印成功警报消息时,我总是得到:已经为该响应异常调用了getOutputStream()。

解决此问题的正确方法是什么?

下面是我的代码部分:

// Write data in the excel
            ServletOutputStream out = response.getOutputStream(); => It successfully creates excel file
            workbook.write(out);

            // Close output stream and workbook
            workbook.close();
            out.flush();
            out.close();

            PrintWriter pw = response.getWriter(); => My problem is here!!
            response.setContentType("text/html");
            pw.println("<script type=\"text/javascript\">");
            pw.println("alert('" + message + "');");
            pw.println("history.back();");
            pw.println("</script>");

1 个答案:

答案 0 :(得分:0)

您试图在同一HTTP请求的响应中返回两个对象。这不是HTTP的工作方式。没有浏览器会支持。

AFAIK,无法在javascript中检测“下载完成”事件。