Duvida no uso do servlet

2 respostas
F

Galera estou com uma duvida cruel estou usando um servlet para fazer a contrução de um relatorio jarperReport tenho um botão na pagina com dois label para passar as data de inicio e fim do periodo ate ai blz, mais como eu faço para acessar o servlet a partir da pagina tentei pesquisar na net mais obtenho sempre que tenho q fazer um bean para o servlet mais como fazer isso? segue abaixo meu servlet:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.pmjp.sisgec.servlets;

import br.pmjp.sisgec.model.fachada.Facade;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.SQLException;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;


/**
 *
 * @author Igor
 */
public class RelatorioEscolaServlet extends HttpServlet {

    public static final long serialVersionUID = 1L;

    public RelatorioEscolaServlet() {
        super();
    }

    protected void processRequest(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException, SQLException, ClassNotFoundException {

        try {
            PrintWriter out = resp.getWriter();
            Facade facade = Facade.getInstance();
            ServletOutputStream servletOutPutStream = resp.getOutputStream();
            String caminho = getServletContext().getRealPath("") + "/WEB-INF/relatorios/relatorio_escola.pdf";
            out.print(caminho);
            String dataInicio = req.getParameter("dataInicio");
            String dataFim = req.getParameter("dataFim");
            InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream(caminho);

            HashMap parametrosRelatorio = new HashMap();
            parametrosRelatorio.put("dataInicio", dataInicio);
            parametrosRelatorio.put("dataFim", dataFim);

            JasperRunManager.runReportToPdfStream(reportStream, servletOutPutStream, parametrosRelatorio, facade.conectar());
            resp.setContentType("application/pdf");
            servletOutPutStream.flush();
            servletOutPutStream.close();
            resp.sendRedirect("listEscola.xhtml");

        } catch (JRException e) {
            StringWriter stringWriter = new StringWriter();
            PrintWriter printWriter = new PrintWriter(stringWriter);
            e.printStackTrace();
            resp.setContentType("text/plain");
            resp.getOutputStream().print(stringWriter.toString());
        }catch(Exception e){
            e.printStackTrace();
        }

    }

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
        try {
            processRequest(req,resp);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
        try {
            processRequest(req,resp);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2 Respostas

pedruhenrik

você mapeou a servlet no seu web.xml ?

acho q no jsp vc deve passar a action o servlet name.

da uma olhada na apostila da Caelum fj 21 ou um tutorial de servlets no seu site de busca favorito.

att,

F

Resolvi a bronca vlw ai!

Criado 15 de abril de 2011
Ultima resposta 19 de abr. de 2011
Respostas 2
Participantes 2