Tenho um Servlet que gera um relatorio em formato .pdf, com o codigo abaixo eu nao consigo forcar o browser a realizar o download do arquivo. No Firefox, o arquivo aparece em outra aba. No IE7, o arquivo eh aberto pelo Adobe Reader e o IE7 dah pau.
ServletOutputStream servletOutputStream = response.getOutputStream();
File arquivoRelatorio = new File( this.getServletContext().getRealPath("/reports/produtos.jasper") );
InputStream relatorioStream = new FileInputStream(arquivoRelatorio);
//InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream("/reports/produtos.jasper");
try {
JasperRunManager.runReportToPdfStream(relatorioStream, servletOutputStream, new HashMap(), this.createReportDataSource());
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=\"produtos.pdf\"");
servletOutputStream.flush();
} catch (JRException e) {
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType("text/plain");
response.getOutputStream().print(stringWriter.toString());
} finally {
servletOutputStream.close();
}