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