Jsp 写入响应后重定向引发异常

Jsp 写入响应后重定向引发异常,jsp,servlets,redirect,jakarta-ee,forward,Jsp,Servlets,Redirect,Jakarta Ee,Forward,我正在开发一个应用程序,该应用程序需要从文件服务器下载批量数据,最大文件大小限制固定为3Mb。这意味着我的最大下载容量为3Mb。我正在将输入流写入响应输出流。我的问题是,我需要在下载后将响应重定向到jsp页面。现在当我使用servlet中的代码重定向..我得到一个java.lang.IllegalStateException:提交响应后无法转发 RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/save.

我正在开发一个应用程序,该应用程序需要从文件服务器下载批量数据,最大文件大小限制固定为3Mb。这意味着我的最大下载容量为3Mb。我正在将输入流写入响应输出流。我的问题是,我需要在下载后将响应重定向到jsp页面。现在当我使用servlet中的代码重定向..我得到一个java.lang.IllegalStateException:提交响应后无法转发

RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/save.jsp");
rd.forward(request, response);

如何重定向。在一个单独的线程中下载对我有帮助吗。请建议……

在响应已设置的情况下,您无法重定向。更多详细信息。

您不能这样做

基本上,“提交”意味着服务器端已经开始向客户端发送响应消息。至少,它已经发送了包含响应状态代码的响应的第一行。如果要执行重定向,则可以(部分)通过在响应中设置
3xx
状态代码来实现


在提交响应之前,您必须找到某种方法进行重定向。

当我在同一个servlet中完成下载时,为什么我不能重定向???您不能这样做,servlet已经设置了一些输出。但是,如果我没有弄错的话,您可以使用AJAX推送来实现这一点。