Thèmes

moi servlet jasper web java image moi background chez you jsp java

Rechercher
Statistiques

Date de création : 17.08.2012
Dernière mise à jour : 19.09.2016
1 articles


CREER UN RAPPORT AVEC JSP ET JASPERSOFT

Publié le 19/09/2016 à 04:14 par hornel Tags : servlet jasper web java image moi background chez you jsp
CREER UN RAPPORT AVEC JSP ET JASPERSOFT

Salut, nous allons parlé aujoud'hui de comment afficher un etat en sortie (Rapport imprimable) avec JSP et SERVLET.

J'ai eu beaucoup des questions sur ça chez les jeunes developpeurs en Java Web.

Voici les codes servlet:

 

/*

 * To change this license header, choose License Headers in Project Properties.

 * To change this template file, choose Tools | Templates

 * and open the template in the editor.

 */

 

import java.io.File;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.HashMap;

import java.util.logging.Level;

import java.util.logging.Logger;

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 net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperRunManager;

 

/**

 *

 * @author LAMA

 */

@WebServlet(urlPatterns = {"/NewServlet"})

public class NewServlet extends HttpServlet {

 

    /**

     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>

     * methods.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");

        PrintWriter out = response.getWriter();

        try {

            /* TODO output your page here. You may use following sample code. */

            out.println("<!DOCTYPE html>");

            out.println("<html>");

            out.println("<head>");

            out.println("<title>Servlet NewServlet</title>");           

            out.println("</head>");

            out.println("<body>");

            out.println("<h1>Servlet NewServlet at " + request.getContextPath() + "</h1>");

            out.println("</body>");

            out.println("</html>");

        } finally {

            out.close();

        }

    }

 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**

     * Handles the HTTP <code>GET</code> method.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    @Override

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        try {

            String url=this.getServletContext().getRealPath("/reports/report1.jasper");

            Class.forName("com.mysql.jdbc.Driver").newInstance();

            Connection cnx=DriverManager.getConnection("jdbc:mysql://localhost:3306/agent","root","root");

            File fichier=new File("");

            byte[]bt=JasperRunManager.runReportToPdf(url, null, cnx);

             

            response.setContentType("application/pdf");

            response.setContentLength(bt.length);

            ServletOutputStream servletOutputStream=response.getOutputStream();

            servletOutputStream.write(bt, 0, bt.length);

            servletOutputStream.flush();

            servletOutputStream.close();

            processRequest(request, response);

        } catch (SQLException ex) {

            PrintWriter out=response.getWriter();

            out.println(ex.getMessage());

        } catch (JRException ex) {

            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);

        } catch (ClassNotFoundException ex) {

            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);

        } catch (InstantiationException ex) {

            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);

        } catch (IllegalAccessException ex) {

            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);

        }

    }

 

    /**

     * Handles the HTTP <code>POST</code> method.

     *

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    @Override

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        try {

             String url=this.getServletContext().getRealPath("/reports/report2.jasper");

            Class.forName("com.mysql.jdbc.Driver").newInstance();

            HashMap hm=new HashMap();

            hm.put("ID", request.getParameter("txt"));

            Connection cnx=DriverManager.getConnection("jdbc:mysql://localhost:3306/agent","root","root");

            File fichier=new File("");

            byte[]bt=JasperRunManager.runReportToPdf(url, hm, cnx);

            response.setContentType("application/pdf");

            response.setContentLength(bt.length);

            ServletOutputStream servletOutputStream=response.getOutputStream();

            servletOutputStream.write(bt, 0, bt.length);

            servletOutputStream.flush();

            servletOutputStream.close();

            processRequest(request, response);

        } catch (SQLException ex) {

            PrintWriter out=response.getWriter();

            out.println(ex.getMessage());

        } catch (JRException ex) {

            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);

        } catch (ClassNotFoundException ex) {

            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);

        } catch (InstantiationException ex) {

            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);

        } catch (IllegalAccessException ex) {

            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);

        }

        processRequest(request, response);

    }

 

    /**

     * Returns a short description of the servlet.

     *

     * @return a String containing servlet description

     */

    @Override

    public String getServletInfo() {

        return "Short description";

    }// </editor-fold>

 

}

Je suis sûr qu'en voyant les codes servelt, vous vous êtes dis "Java c'est vraiment verbeux", non regardez juste le block des codes de la methode doPost()

LES CODES EN JSP:

 

 

<%--

    Document   : newjsp

    Created on : 10 janv. 2014, 23:08:46

    Author     : LAMA

--%>

 

<%@page import="net.sf.jasperreports.engine.JasperRunManager"%>

<%@page import="java.sql.Connection"%>

<%@page import="java.sql.DriverManager"%>

<%@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>

        <h1>Hello World!</h1>

        <%

            String url=this.getServletContext().getRealPath("/reports/report1.jasper");

            Class.forName("com.mysql.jdbc.Driver");

            Connection cnx=DriverManager.getConnection("jdbc:mysql://localhost/agent","root","root");

            byte[]bt=JasperRunManager.runReportToPdf(url, null,cnx);

            response.setContentType("application/pdf");

            response.setContentLength(bt.length);

            ServletOutputStream sos=response.getOutputStream();

            sos.write(bt, 0, bt.length);

            sos.flush();

            %>

    </body>

</html>