String jasperFilePath = “WEB-INF/reports/test.jasper”;
// 获得报表模板文件对象
File reportFile = getApplicationContext().getResource(jasperFilePath).getFile();
JasperPrint print = JasperFillManager.fillReport(reportFile.getAbsolutePath(), map, dataSource.getConnection());
JRHtmlExporter exporter = new JRHtmlExporter();
// 组装图片请求URI,增加time参数,防止同一个报表的图片缓存。
String imageURI = request.getContextPath() + “/service/reportImages?time=” + System.currentTimeMillis() + “&image=” ;
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, imageURI);
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, print);
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.TRUE);
exporter.setParameter(JRExporterParameter. JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter. OUTPUT_WRITER, response.getWriter());
exporter.setParameter(JRHtmlExporterParameter.FLUSH_OUTPUT, Boolean.TRUE);
exporter.exportReport();