Problemas com servlet

1 resposta
B

Boa tarde,

preciso chamar uma servlet à partir de um botão mas o problema é que ela executa quando eu chamo qualquer pagina.. A servlet é para fazer um download de um pdf mas antes mesmo de mostrar a pagina, o botão, etc, o já pdf aparece :s
alguém pode me ajudar?,
valeu.

mapeamento no web.xml:
<servlet>
        <servlet-name>RelatorioServlet</servlet-name>
        <servlet-class>relatorio.Relatorio2</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>RelatorioServlet</servlet-name>
        <url-pattern>/rel</url-pattern>
    </servlet-mapping>
xhtml:
<h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <title>iReport</title>

    </h:head>
    <h:body>
        <h:form id="form">
             <ice:commandButton value="Gerar Relatório" action="http://192.168.0.48:9090/ireport2/rel" />
         </h:form>
    </h:body>
método em Relatorio2.java:
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

        // Na variavel pathJasper ficara o caminho do diretório para
        // os relatórios compilados (.jasper)
        String pathJasper = getServletContext().getRealPath("/WEB-INF/classes/relatorio/") + "/";

        // A variavel path armazena o caminho real para o contexto
        // isso é util pois o seu web container pode estar instalado em lugares diferentes
        String path = getServletContext().getRealPath("/");

        //variável do relatório
        Map parametros = new HashMap();
        
        try {
            HashMap map = new HashMap();
            // Aqui ele cria o relatório
            JasperPrint impressao = JasperFillManager.fillReport(pathJasper
                           + "web.jasper", parametros, Conexao.getConnection());

            JasperManager.printReportToPdfFile(impressao, path
               + "/web.pdf");
            
            // Redireciona para o pdf gerado
            res.sendRedirect("web.pdf");
            

        } catch (Exception e) {
              e.printStackTrace();
        }
    }

1 Resposta

rogerio.oliveira

Oi amigo, acho que posso ajudá-lo, coloque aqui todo o seu web.xml para eu dar uma olhada nele.

Criado 31 de janeiro de 2011
Ultima resposta 31 de jan. de 2011
Respostas 1
Participantes 2