Menggunakan JasperReport pada aplikasi web JSP

Membuat reporting pada aplikasi web dengan Java dapat menggunakan JasperReport library. Saat ini tersedia aplikasi desain report menggunakan JasperReport Studio yang dapat di download di JasperReport Community

Berikut tutorial singkat output laporan yang dihasilkan JasperReport dalam bentuk format file PDF pada aplikasi web

  1. Pastikan telah tersedia object koneksi ke database, dalam contoh ini menggunakan Class DBKoneksi.java untuk melakukan manajemen koneksi database, bisa baca tutorial ini JDBC Koneksi Database.
  2. Pastikan sudah membuat file JasperReport : LaporanBarang.jasper dan LaporanBarang.jrxml, dan letakan dalam direktori web anda
  3. Import library JasperReport dan Spring Framework
  4. Buat file jsp dengan output content-type file format PDF
    <%@page import="com.xbata.labs.DBKoneksi" %>
    <%@page import="java.io.File"%>
    <%@page import="java.util.HashMap"%>
    <%@page import="java.util.Map"%>
    <%@page import="net.sf.jasperreports.engine.*"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <%
               DBKoneksi dbkon = new DBKoneksi();
                String absolutePath = getServletContext().getRealPath("LaporanBarang.jasper");
               File reportFile = new File(absolutePath);
    
               Map parameters = new HashMap();
                byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),
                           parameters, dbkon.getKoneksi());
    
                response.setContentType("application/pdf");
                response.setContentLength(bytes.length);
                ServletOutputStream outStream = response.getOutputStream();
                outStream.write(bytes, 0, bytes.length);
                outStream.flush();
                outStream.close();
            %>
        </body>
    </html>
    

Post a Response