Como usar javascript para exibir mensagens de exceções da minha servlet? [RESOLVIDO]

5 respostas
K

Salve galera,
tenho uma servlet ValidarLogin e queria que ao ver que não existe conta de usuário, ela mandasse uma mensagem de erro em uma janela alert do javascript, tem como?

Obs: Estou usando JOptionPane para avisos de erros de exceções mas acho feio, quero substituir por javascript é possível?

5 Respostas

D

Você consegue renderizar o script normalmente.

out.println("<script>");
out.println("alert(" + erro + ");");
out.println("</script>");
R

Mostrar erros de Servlet com JOptionPane ?! Colega, antes de mais nada, você precisa entender que uma aplicação Web tem um lado cliente e um lado servidor, como eles se comunicam (HTTP) e quais tecnologias podem ser usadas no cliente (HTML, Javascript, CSS, Flash, Flex, Applets, JavaFX, etc.) e quais são usadas no lado servidor (PHP, Servlets, Ruby, Python, etc.). Resumindo, usar JOptionPane para mostrar erros do Servlet funciona no desenvolvimento, pois você tem a interface e o servidor na mesma máquina. Para o usuário, ele ficará vendo a página travada enquanto a thread espera o admnistrador clicar no OK.

Com relação à sua dúvida específica, você pode escrever uma JSP que contenha o Javascript do alert, concatenando a mensagem de erro na chamada do métod alert. Daí você configura sua JSP como sua error page, lá no web.xml. Ou então, você pode simplesmente printar o HTML + JS com o erro no PrintWriter da response.

Bom, usar Window.alert em termos de design é horrível. Na boa, isso só serve para debugar o Javascript porque a janela é feia demais. Seu site fica com cara de amador. A melhor opção é você ou voltar para a página de login incluindo a mensagem de erro ou então direcionar para uma págia exclusiva para exibir erros, mas que tenha o layout em harmonia com o resto do site/aplicação.

K

É eu sei que JOption não é pra esse objetivo mais agora pro meu desenvolvimento fica mais visível, sobre fazer uma página de erro estou pensando, talvez ficasse mais organizado porém pra erros do tipo “Não foi possível estabelecer conexão com o BD” acho que ficaria exagerado por isso um alert pra mim daria pro gasto, estarei tentando e depois irei postar como resolvido esta solução. Sobre o outro ponto ainda não estamos trabalhando com JSP mais posso ver por fora, seria uma boa entender os <% %> da questão rs. Thanks.

K

Bem galera pra quebrar o galho fiz assim no meu servlet:

out.println("<script>"); out.println("alert('Senha ou Usuário inválidos!');"); out.println("document.location=('LoginAdmin.html');"); out.println("</script>");

Como o colega falou, o design é horrível mas dá pra quebrar o galho já que tô sem tempo rs.

Obs: se usar o sendredirect não funfa, por isso uso javascript document.location

Obrigado a todos!

D

kikokairos:
Obs: se usar o sendredirect não funfa, por isso uso javascript document.location

E por que não usa

request.getRequestDispatcher("pagina_que_quero.html").forward(request, response);

Ao invés de sendRedirect e js gambiarra?
???

Criado 25 de janeiro de 2012
Ultima resposta 26 de jan. de 2012
Respostas 5
Participantes 3