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.
<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>
<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>
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();
}
}