What I do is this: Do I have to compilate the jrxml every time I call it??? <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> /*importamos las librerías de JasperReports*/ <%@ page import="net.sf.jasperreports.engine.*" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="java.sql.*" %> <%@ page import="java.text.DateFormat"%> <%@ page import="java.text.ParseException"%> <%@ page import="java.text.SimpleDateFormat"%> <%@ page import="java.util.Date"%> <% /*Parametros para realizar la conexión*/ Connection conexion; Class.forName("com.mysql.jdbc.Driver").newInstance(); conexion = DriverManager.getConnection("jdbc:mysql://localhost/wf", "root", "12345678"); /*Establecemos la ruta del reporte*/ File reportFile = new File(application.getRealPath("/reportes/nombre.jasper")); /* No enviamos parámetros porque nuestro reporte no los necesita asi que escriba cualquier cadena de texto ya que solo seguiremos el formato del método runReportToPdf*/ Map parameters = new HashMap(); String emp=request.getParameter("emp"); if(emp!=null){ parameters.put("nombre", "%"+emp+"%"); System.out.print(emp); } DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date pFecha = new Date(); pFecha=(Date)formatter.parse(request.getParameter("calInput1")); System.out.print("fecha->"+pFecha); parameters.put("fechaIni",pFecha); pFecha=(Date)formatter.parse(request.getParameter("calInput2")); parameters.put("fechaFin",pFecha); String rfc=request.getParameter("rfc"); if(rfc!=null){ parameters.put("rfc","%"+rfc+"%"); System.out.println("rfc->"+rfc); } String serie=request.getParameter("serie"); if(serie!=null){ parameters.put("serie","%"+serie+"%"); System.out.println("serie->"+serie); } String edicion=request.getParameter("edicion"); if(edicion!=null){ parameters.put("edicion","%"+edicion+"%"); System.out.println("edicion->"+edicion); } String tipo=request.getParameter("tipo"); if(tipo!=null){ parameters.put("tipo","%"+tipo+"%"); System.out.println("tipo->"+tipo); } String status=request.getParameter("status"); if(status!=null){ parameters.put("status","status"); System.out.println("status->"+status); } //PDF/// /*Enviamos la ruta del reporte, los parámetros y la conexión(objeto Connection)*/ byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters,conexion); /*Indicamos que la respuesta va a ser en formato PDF*/ response.setContentType("application/pdf"); response.setContentLength(bytes.length); ServletOutputStream ouputStream = response.getOutputStream(); ouputStream.write(bytes, 0, bytes.length); /*Limpiamos y cerramos flujos de salida*/ ouputStream.flush(); ouputStream.close(); //END PDF/// %>