Jsp 在Servlet中提交响应后无法转发

Jsp 在Servlet中提交响应后无法转发,jsp,servlets,Jsp,Servlets,我正在为我的简单应用程序使用Servlet和Jsp。当我点击Submit按钮时,它会激活servelt并下载PDF文件并将其转发到下一页。现在我的问题是,我在servlet中使用response.setHeader和getOutputStream,同时我尝试将我的重新请求转移到下一页。现在它向我抛出一个错误,说java.lang.IllegalStateException:提交响应后无法转发。 请任何人帮我解决这个问题 代码: 你必须改变你的“工作流程”。Web应用程序基于HTTP,这是一种请求

我正在为我的简单应用程序使用Servlet和Jsp。当我点击Submit按钮时,它会激活servelt并下载PDF文件并将其转发到下一页。现在我的问题是,我在servlet中使用
response.setHeader和getOutputStream
,同时我尝试将我的重新请求转移到下一页。现在它向我抛出一个错误,说
java.lang.IllegalStateException:提交响应后无法转发
。 请任何人帮我解决这个问题

代码:

你必须改变你的“工作流程”。Web应用程序基于HTTP,这是一种请求-响应协议。您已经通过写入响应的outputStream来响应您的请求。您不能再次转发回复。此外,您只能打开一个“输出通道”——二进制响应的outputStream或文本响应的writer。由于已经为PdfWriter打开了输出流,因此您甚至无法获得写入器来写入单个位


作为表单提交操作的结果,如何显示staffing-results1.jsp以及PDF的链接?

您不能从jsp同时提供PDF和html。您需要决定哪一个更适合给用户。
public class Class extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
Document document = new Document();  
        ServletConfig cfg=getServletConfig();
        ServletContext application=cfg.getServletContext();
    response.setContentType("application/pdf");
            response.setHeader("Content-Disposition"," attachment; filename=\"BI_Staffing.pdf\"");              
            PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());  

------------
---------------(My Code)
document.close();

                RequestDispatcher rd=request.getRequestDispatcher("staffing-results1.jsp");
                rd.forward(request,response);   
}
}