Como chamar página JSP através de um SERVLET?

13 respostas
T

Pessoal boa noite.
Meu primeiro tópico aqui no GUJ e preciso de ajuda mesmo.

Tenho uma página jsp que faz o uma inserção no banco. Depois da inserção feita com sucesso, preciso chamar outra página JSP, mas não consigo.
Veja o código abaixo.

//Instancia DAO de cadastro de cliente
        Clientes_dao CliDao = new Clientes_dao();

        //Instancia POJO de clientes
        Clientes_Pojo CliPojo = new Clientes_Pojo();

        //Seta os dados do Pojo
        CliPojo.setTipoCliente("pj");
        CliPojo.setRazaoSocial(request.getParameter("textRazaoSocial"));
        CliPojo.setNomeFantasia(request.getParameter("textNomeFantasia"));
        CliPojo.setCnpj(request.getParameter("textCnpj"));
        CliPojo.setNomeCliente("");
        CliPojo.setCpfCliente("");
        CliPojo.setRgCliente("");
        CliPojo.setDataNascimentoCliente("");
        CliPojo.setEmailCliente("");
        CliPojo.setSiteCliente(request.getParameter("textSite"));
        CliPojo.setTelefoneCliente(request.getParameter("textTelefone"));
        CliPojo.setCelularCliente("");
        CliPojo.setCepCliente(request.getParameter("textCep"));
        CliPojo.setLogradouroCliente(request.getParameter("textLogradouro"));
        CliPojo.setNumeroCliente(new Integer(request.getParameter("textNumero")));
        CliPojo.setComplementoCliente(request.getParameter("textComplemento"));
        CliPojo.setBairroCliente(request.getParameter("textBairro"));
        CliPojo.setCidadeCliente("");
        CliPojo.setUfCliente(request.getParameter("textUf"));
        
        try {
            //CHAMA O METODO DE CADASTRO DE CLIENTE PESSOA JURÍDICA
            CliDao.CadastraClientePJ(CliPojo);

Logo depois da chamada do método de inserção CliDao.CadastraClientePJ(CliPojo); da linha 30 acima , quero chamar uma página JSP.
Como eu faço isso?
Alguém pode me ajudar?

Valeu pessoal.

13 Respostas

M

isso resolve?

RequestDispatcher rd = request.getRequestDispatcher("suaPagina.jsp");
rd.forward(request, response);
J

Se não me falha a memória, pode usar tbm o response.sendRedirect("suaPagina.jsp");

T

MALOKAS,

não funciona. Já tentei usar o request.getRequestDispatcher mas ele não funciona, tentei debugar, mas ele para na linha 2, na linha rd.forward(request, response);

T

jcavictorio,

mas eu posso usar ele dentro do TRY/CATCH normalmente ?

M

Qual o erro que da?
Posta o método completo aqui.

T
malokas:
Qual o erro que da? Posta o método completo aqui.
Ele simplesmente para a execução. Para a execução nesta linha sacou. O método é o POST, que chamo através de um botão de um formulário na página anterior saca. Olha o método:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);

        //Instancia DAO de cadastro de cliente
        Clientes_dao CliDao = new Clientes_dao();

        //Instancia POJO de clientes
        Clientes_Pojo CliPojo = new Clientes_Pojo();

        //Seta os dados do Pojo
        CliPojo.setTipoCliente("pj");
        CliPojo.setRazaoSocial(request.getParameter("textRazaoSocial"));
        CliPojo.setNomeFantasia(request.getParameter("textNomeFantasia"));
        CliPojo.setCnpj(request.getParameter("textCnpj"));
        CliPojo.setNomeCliente("");
        CliPojo.setCpfCliente("");
        CliPojo.setRgCliente("");
        CliPojo.setDataNascimentoCliente("");
        CliPojo.setEmailCliente("");
        CliPojo.setSiteCliente(request.getParameter("textSite"));
        CliPojo.setTelefoneCliente(request.getParameter("textTelefone"));
        CliPojo.setCelularCliente("");
        CliPojo.setCepCliente(request.getParameter("textCep"));
        CliPojo.setLogradouroCliente(request.getParameter("textLogradouro"));
        CliPojo.setNumeroCliente(new Integer(request.getParameter("textNumero")));
        CliPojo.setComplementoCliente(request.getParameter("textComplemento"));
        CliPojo.setBairroCliente(request.getParameter("textBairro"));
        CliPojo.setCidadeCliente(request.getParameter("textCidade"));
        CliPojo.setUfCliente(request.getParameter("textUf"));
        
        try {
            //CHAMA O METODO DE CADASTRO DE CLIENTE PESSOA JURÍDICA
            CliDao.CadastraClientePJ(CliPojo);

            
            RequestDispatcher view = request.getRequestDispatcher("PaginaResposta.jsp");
            view.forward(request, response);

        } catch (ClassNotFoundException ex) {
            Logger.getLogger(CadastroClientes.class.getName()).log(Level.SEVERE, null, ex);
        }//try catch

        


    }//post
V

Tópico movido para o fórum de desenvolvimento web.

F

Cara você tem que colocar o nome da aplicação mas o “contexto” exemplo:

se tenho uma aplicação com o nome de “Vendas”
e o meu contexto é “pages”

então eu redirecionaria aSSIM OH:

response.sendRedirect("/Vendas/pages/PaginaResposta.jsp");

dentro do try catch funciona normal

M

Tenta colocar uma barra(/) antes assim:

RequestDispatcher view = request.getRequestDispatcher("/PaginaResposta.jsp");
            view.forward(request, response);
A

Aqui vai um CRUD com JSP e Servlets, talvez tenha algo que possa te ajudar:
Parte1: http://javasemcafe.blogspot.com/2010/08/aula-18082010-4tads-aplicacao-com.html
Parte2: http://javasemcafe.blogspot.com/2010/08/25082010-4tads-alterar-e-remover-com.html

T

FelipeThi:
Cara você tem que colocar o nome da aplicação mas o “contexto” exemplo:

se tenho uma aplicação com o nome de “Vendas”
e o meu contexto é “pages”

então eu redirecionaria aSSIM OH:

response.sendRedirect("/Vendas/pages/PaginaResposta.jsp");

dentro do try catch funciona normal

FelipeThi

infelizmente não funcionou. a minha página resposta tá na pasta principal do projeto, que é a PÁGINAS DA WEB… não funciona tb…
=(

T

malokas:
Tenta colocar uma barra(/) antes assim:

RequestDispatcher view = request.getRequestDispatcher("/PaginaResposta.jsp");
            view.forward(request, response);

MALOKAS,

infelizmente não funcionou também … não sei mais o que faço pra resolver isso …

M

Olá, thenrique88!

Caso você realmente esteja interessado em conhecer como funciona SERVLET recomendo você realizar a leitura da apostila da Caelum FJ21 do Capítulo 4 e 5, se você realmente continuar a leitura irá ver que é muito interessante ter o conhecimento de como funciona a SERVLET só que infelizmente ele não é nem um pouco produtivo, por fim, você vai acabar optando em utilizar algum Framework MVC (Struts 1 ou 2, VRaptor 3 entre outros). Mas realmete é bom entender como funciona o SERVLET e todo o conceito de Request e Response, pois os Frameworks MVC acabam realizando todo este processo para você, para que você se preocupe em programar Java!

Download da apostila do FJ21:
http://www.caelum.com.br/curso/fj-21-java-web/

Espero que realmente te ajude da mesma forma que me ajudou!

Abraço.

Criado 19 de maio de 2011
Ultima resposta 20 de mai. de 2011
Respostas 13
Participantes 7