Save This Page
Home » jasperreports-3.0.0-project » servlets » [javadoc | source]
    1   /*
    2    * ============================================================================
    3    * GNU Lesser General Public License
    4    * ============================================================================
    5    *
    6    * JasperReports - Free Java report-generating library.
    7    * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
    8    * 
    9    * This library is free software; you can redistribute it and/or
   10    * modify it under the terms of the GNU Lesser General Public
   11    * License as published by the Free Software Foundation; either
   12    * version 2.1 of the License, or (at your option) any later version.
   13    * 
   14    * This library is distributed in the hope that it will be useful,
   15    * but WITHOUT ANY WARRANTY; without even the implied warranty of
   16    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   17    * Lesser General Public License for more details.
   18    * 
   19    * You should have received a copy of the GNU Lesser General Public
   20    * License along with this library; if not, write to the Free Software
   21    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
   22    * 
   23    * JasperSoft Corporation
   24    * 303 Second Street, Suite 450 North
   25    * San Francisco, CA 94107
   26    * http://www.jaspersoft.com
   27    */
   28   package servlets;
   29   
   30   import java.io.File;
   31   import java.io.IOException;
   32   import java.io.ObjectOutputStream;
   33   import java.io.PrintWriter;
   34   import java.util.HashMap;
   35   import java.util.Map;
   36   
   37   import javax.servlet.ServletContext;
   38   import javax.servlet.ServletException;
   39   import javax.servlet.ServletOutputStream;
   40   import javax.servlet.http.HttpServlet;
   41   import javax.servlet.http.HttpServletRequest;
   42   import javax.servlet.http.HttpServletResponse;
   43   
   44   import net.sf.jasperreports.engine.JRException;
   45   import net.sf.jasperreports.engine.JRRuntimeException;
   46   import net.sf.jasperreports.engine.JasperFillManager;
   47   import net.sf.jasperreports.engine.JasperPrint;
   48   import net.sf.jasperreports.engine.JasperReport;
   49   import net.sf.jasperreports.engine.util.JRLoader;
   50   import datasource.WebappDataSource;
   51   
   52   
   53   /**
   54    * @author Teodor Danciu (teodord@users.sourceforge.net)
   55    * @version $Id: JasperPrintServlet.java 1236 2006-04-22 07:51:44Z teodord $
   56    */
   57   public class JasperPrintServlet extends HttpServlet
   58   {
   59   
   60   
   61   	/**
   62   	 *
   63   	 */
   64   	public void service(
   65   		HttpServletRequest request,
   66   		HttpServletResponse response
   67   		) throws IOException, ServletException
   68   	{
   69   		ServletContext context = this.getServletConfig().getServletContext();
   70   
   71   		File reportFile = new File(context.getRealPath("/reports/WebappReport.jasper"));
   72   		if (!reportFile.exists())
   73   			throw new JRRuntimeException("File WebappReport.jasper not found. The report design must be compiled first.");
   74   
   75   		Map parameters = new HashMap();
   76   		parameters.put("ReportTitle", "Address Report");
   77   		parameters.put("BaseDir", reportFile.getParentFile());
   78   					
   79   		JasperPrint jasperPrint = null;
   80   
   81   		try
   82   		{
   83   			JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
   84   			
   85   			jasperPrint = 
   86   				JasperFillManager.fillReport(
   87   					jasperReport,
   88   					parameters, 
   89   					new WebappDataSource()
   90   					);
   91   		}
   92   		catch (JRException e)
   93   		{
   94   			response.setContentType("text/html");
   95   			PrintWriter out = response.getWriter();
   96   			out.println("<html>");
   97   			out.println("<head>");
   98   			out.println("<title>JasperReports - Web Application Sample</title>");
   99   			out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
  100   			out.println("</head>");
  101   			
  102   			out.println("<body bgcolor=\"white\">");
  103   
  104   			out.println("<span class=\"bnew\">JasperReports encountered this error :</span>");
  105   			out.println("<pre>");
  106   
  107   			e.printStackTrace(out);
  108   
  109   			out.println("</pre>");
  110   
  111   			out.println("</body>");
  112   			out.println("</html>");
  113   
  114   			return;
  115   		}
  116   
  117   		if (jasperPrint != null)
  118   		{
  119   			response.setContentType("application/octet-stream");
  120   			ServletOutputStream ouputStream = response.getOutputStream();
  121   			
  122   			ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
  123   			oos.writeObject(jasperPrint);
  124   			oos.flush();
  125   			oos.close();
  126   
  127   			ouputStream.flush();
  128   			ouputStream.close();
  129   		}
  130   		else
  131   		{
  132   			response.setContentType("text/html");
  133   			PrintWriter out = response.getWriter();
  134   			out.println("<html>");
  135   			out.println("<head>");
  136   			out.println("<title>JasperReports - Web Application Sample</title>");
  137   			out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
  138   			out.println("</head>");
  139   			
  140   			out.println("<body bgcolor=\"white\">");
  141   	
  142   			out.println("<span class=\"bold\">Empty response.</span>");
  143   	
  144   			out.println("</body>");
  145   			out.println("</html>");
  146   		}
  147   	}
  148   
  149   
  150   }

Save This Page
Home » jasperreports-3.0.0-project » servlets » [javadoc | source]