Как исправить исключение: getOutputStream () уже был вызван для этого ответа? - PullRequest
0 голосов
/ 17 июня 2019

Я просмотрел ответы / обсуждение той же / подобной проблемы и обнаружил, что должен использовать метод «ответа» либо для загрузки файла, либо для получения HTML-страницы за один раз. В моем случае после успешной загрузки файла я хочу показать сообщение об успешном завершении. И когда я использую метод «response» для загрузки файла и для вывода сообщения об успешном завершении, я всегда получаю: 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 голосов
/ 17 июня 2019

Вы пытаетесь вернуть два объекта в ответ на один и тот же HTTP-запрос. Это не так, как работает HTTP. Ни один браузер не будет поддерживать это.

AFAIK, в javascript нет способа обнаружить событие «загрузка завершена».

...