我正在为我生成的文件提供下载功能。 提供下载选项的代码是
ServletOutputStream sos=response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition","attachment;filename=" + "Timesheet.pdf" );
sos.write();
一旦此代码成功执行,就意味着已经使用了响应。 因此,当我尝试使用response.sendRedirect()或RequestDispatcher时,它会向我显示已经提交响应的异常。
所以任何人都可以帮助我在提供下载后将我的执行指向另一个页面。?
答案 0 :(得分:1)
您遇到的是Servlet的正确功能。这是在提交响应之后(使用HTTP标头发送第一行),你不能做任何事情。
但你可以做的是,像Eclipse下载页面或Sourceforge下载页面那样做。
首先,您可以显示一个页面,上面写着感谢您下载或其他任何内容,它可以有一个点击和下载的链接或一个javascript,它将通过调用您的下载Servlet自动下载。