Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package servlet;
- import java.io.ByteArrayInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.sql.Connection;
- import java.util.HashMap;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import connection.SingleConnection;
- import net.sf.jasperreports.engine.JRException;
- import net.sf.jasperreports.engine.JasperReport;
- import net.sf.jasperreports.engine.JasperRunManager;
- import net.sf.jasperreports.engine.util.JRLoader;
- @WebServlet("/pages/relatorio")
- public class RelatorioServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- private Connection connection;
- public RelatorioServlet() {
- super();
- this.connection = SingleConnection.getConnection();
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String modo = request.getParameter("modo");
- //String tipo = request.getParameter("tipo");
- geraRelatorio(request, response, modo);
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- }
- private void geraRelatorio(HttpServletRequest request, HttpServletResponse response, String modo) throws ServletException, IOException {
- String jasper = "/WEB-INF/report/Carros.jasper";
- ServletContext contexto = getServletContext();
- HashMap<String, Object> param = new HashMap<String, Object>();
- try (ServletOutputStream sos = response.getOutputStream()) {
- JasperReport relatorio = (JasperReport) JRLoader.loadObjectFromFile(contexto.getRealPath(jasper));
- byte[] bytes = JasperRunManager.runReportToPdf(relatorio, param, connection);
- if (bytes != null) {
- response.setContentType("application/pdf");
- response.setContentLength(bytes.length);
- if (modo.equalsIgnoreCase("download")) {
- response.setHeader("Content-Disposition", "attachment;filename=relatorio.pdf");
- downloadFile(bytes, sos);
- } else if (modo.equalsIgnoreCase("visualizar")) {
- sos.write(bytes);
- sos.flush();
- }
- }
- } catch (JRException e) {
- e.printStackTrace();
- }
- }
- private static void downloadFile(byte[] bytes, ServletOutputStream sos) {
- try (InputStream i = new ByteArrayInputStream(bytes)) {
- int bytesRead = i.read();
- while (bytesRead != -1) {
- sos.write(bytesRead);
- bytesRead = i.read();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement