【发布时间】:2023-03-17 00:14:01
【问题描述】:
我正在为我的简单应用程序使用 Servlet 和 Jsp。当我单击提交按钮时,它会调用服务器并下载 PDF 文件并将其转发到下一页。现在我的问题是我在我的 servlet 中使用response.setHeader and getOutputStream,同时我试图将我的请求转发到下一页。现在它向我抛出了错误说 java.lang.IllegalStateException: Cannot forward after response has been committed 。
请任何人帮助我解决这个问题。
代码:
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);
}
}
【问题讨论】:
-
您不能同时提供 pdf 和来自 jsp 的 html。您需要决定哪一个更适合提供给用户。