Enviar uma mensagem do servlet pra um jsp

4 respostas
A

ola pessoal, estou desenvolvendo uma aplicacao com jsp/servlet. Sou iniciante ainda. Eu tenho um form que tem um action q aponta para a minha classe Servlet. nessa classe eu tenho q tratar uma excecao. So que eu gostaria de enviar de novo para o navegador a mensagem de erro para q o navegador pudesse mostra-la para o usuario. Eu uso o objeto response para fazer isso? vcs podem me dar uma dica? obg!

4 Respostas

F

Kra nao tenhu certeza se pode dar certo, pois tb soh iniciante, mas faz o seguinte manda chama uma outra JSP exibindo uma menssagem de erro na propria pagina, seria uma erro.jsp por exemplo, se manda chamar a erro.jsp quando der a excecao. Seria mais ou menos isso ai que vc tah querendo???

A

nao, eu queria mandar para a propria pagina que chamou o jsp!

vlw!

marciocamurati

Acho que se você utilizar filters do servlet irá facilitar muito a sua vida, pois você poderá filtrar qualquer coisa que você precisa antes dela realmente executar o servlet da sua aplicação.

[]s

Cocota

Se você quiser que o Servlet receba os dados enviados pela JSP, faça a validação e então retorne possíveis mensagens de erro, você deve fazer o seguinte:

A página JSP deve ter um espaço -

por exemplo - que só sirva para mostrar resultados de erro. Esse espaço deve ser controlado por um if.
<c:choose>
  <c:when test="${ variavel_de_erro != null }" />
                 MOSTRAR ERRO.
  </c:when>
</c:choose>

O Servlet deve fazer analogamente a mesma coisa. Caso haja um erro, ele deve direcionar a requisição para outro canto. Utilize RequestDispatcher para isso.

RequestDispatcher dispatcher;

(...)

if (erro_acontecer){
    path = "pagina_de_erro.jsp";
}

    dispatcher = request.getRequestDispatcher(path)
    dispatcher.forward(request,response);

Essa página de erro pode ser inclusive a própria página que você enviou os dados para o Servlet.

E se você quiser que seus dados sejam tratados fora do Servlet. Utilize um Filter, como disse o colega.

Criado 23 de agosto de 2006
Ultima resposta 23 de ago. de 2006
Respostas 4
Participantes 4