Duvida em Servlet

6 respostas
A

Pessoal

Estou com uma duvida, estou invokando um servlet e no final da execução ele esta me direcionando para uma pagina em branco com o nome do meu servlet ! Queria que fosse redirecionado para a mesma pagina, porem que trouxesse alguns dados ! O que eu estou fazendo de errado ??

Obrigado !

Abs

6 Respostas

C

posta a parte do código da sua action

Naruffy

para voltar para sua pagina coloque no fim do seu servlet:

response.sendRedirect("endereco da sua pagina");
rodrigo.ferreira

Boa Tarde, blz ?

Para que você chame uma servlet e ela faça algum processamento e depois retorne os dados processados para a mesma página que a chamou, você deve usar “request.setAttribute(String, Object)” para gravar os dados no Atributo do Request e depois o “(Casting)request.getAttribute(String)” no JSP para obter o resultado. Segue um exemplo:


Código teste.jsp:

<html>
            <form action="minhaServlet" method="submit">
                <input type="submit" value="Enviar"/>
            </form>

            <% 
                String valorRetornado = (String)request.getAttribute("valorRetornado");
                if ( valorRetornado != null ) {
             %>
                     <table border="0" width="100%">
                          <tr><td>O valor retornado foi : <%=valorRetornado%></td></tr>
                     </table>

            <%
               }
            %>
       </html>

Código minhaServlet.java:

public void execute(HttpServletRequest req, HttpServletResponse res)  {

             // bla... bla... bla...
 
             // Aqui deve-se fazer todo o processamento desejado na Servlet , e/ou delegar as tarefas para quem interesse....
 
             // pegar o resultado, gravar no atributo do request e devolver a página....

             String retorno = "Este texto será retornado para a JSP (OWWWWW)";

             /*
              grava o atributo desejado no atributo do request ... Podem ser criados quantos atributos forem necessários...
              e de qualquer tipo.... basta depois, fazer um Cast no JSP
             */              
             request.setAttribute("valorRetornado", retorno);

             /*
              Faz um "forward" (Transfere os objetos em tempo de Request)
             */
             RequestDispatcher rd = request.getRequestDispatcher("/teste.jsp");
             rd.forward();

      }

Este exemplo ilustra a essência do negócio.


Sugiro que estude JAVA WEB e frameworks como o Struts e JSF, que facilitam e centralizam bastante esse tipo de operação.

Grande abraço !!!
Até,
Rodrigo Ferreira.

A

Rodrigo

Obrigado pela dica ! O problema é que nesse projeto em especifico tem que ser usado apenas servlet ! nada nao !

Outros projetos eu utilizo o struts / JSF

Mas o maior problema é que eu nunca usei apenas servlet para a camada de controller !

Novamente, obrigado

g4j

Poste o código fonte do servlet!

jgbt

Nesses casos provavelmente deve estar ocorrendo algum erro na execução.
Ja deu uma olhada nos logs do servidor?

[]´s

Criado 17 de setembro de 2008
Ultima resposta 18 de set. de 2008
Respostas 6
Participantes 6