Falha ao Gerar PDF com Ireport com intervalo entre datas

Boa tarde pessoal preciso de uma ajuda de vocês…
Estou tentando gerar um relatorio via PDF com Ireport onde ele ira pegar o intervalo de duas data e mostrar o resultado o .jasper que eu criei.

O meu cenário é seguinte tenho um tela onde digito duas data por exemplo 03/10/2016 até 10/10/2016,
Depois pego essas datas recebo em outra pagina JSP com

String param1 = request.getParameter("TxtParam1");
String param2 = request.getParameter("TxtParam2");

Depois disso passo essa strings que recebeu os paramentos das datas para a programação do gerador de PDF conforme abaixo:

 Connection banco = ConnectionDataBase.getConexao();
      
       File reportfile = new File (application.getRealPath("reports/RdEnt.jasper"));
      Map<String,Object> parameters = new HashMap<String, Object>();
      
     String param1 = request.getParameter("TxtParam1");
     String param2 = request.getParameter("TxtParam2");
    
        parameters.put("data1",param1);
        parameters.put("data2",param2);
              
      byte[] bytes = JasperRunManager.runReportToPdf(reportfile.getPath(), parameters,banco);
       response.setContentType("application/pdf");
    
       response.setContentLength(bytes.length);
       ServletOutputStream outputstream = response.getOutputStream();
       outputstream.write(bytes,0,bytes.length);
    outputstream.flush();
     outputstream.close();

quando eu executo ele na saida do netbeans aparece a mensagem dizendo:

out 10, 2016 3:37:29 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [jsp] in context with path [/WebControleEstoque] threw exception [An exception occurred processing JSP page /FuncTeste.jsp at line 56

53: response.setContentType(“application/pdf”);
54:
55: response.setContentLength(bytes.length);
56: ServletOutputStream outputstream = response.getOutputStream();
57: outputstream.write(bytes,0,bytes.length);
58: outputstream.flush();
59: outputstream.close();

Stacktrace:] with root cause
java.lang.IllegalStateException: getWriter() has already been called for this response

OBS: o meu banco de dados o campo esta como DATE
e o Report query esta assim:

SELECT
     *
FROM
ENTRADA_MATERIAL
WHERE
     DATA BETWEEN $P{data1} AND $P{data2}

O estranho é que se eu vou direto no ireport e executo o Preview e coloco o intervalo de datas funciona perfeitamente so nao funciona quando tento passa da paggina para o ireport.

Pelo pouco que eu entendo tenho que fazer alguma conversão

Estou enviando imagem pra ficar mais facil caso tenha ficado complicado