Ajuda Urgente

Fala galera !!!
estou criando uma pagina de erros em jsp e gostaria de saber se e possivel obter a o nome da pagina onde o erro aconteceu …

obrigado desde ja !!!

explica um pouco melhor o fluxo dos acontecimentos, daí fica mais fácil entender o q vc quer fazer pra poder ajudar.

outra coisa, se vc colocar no título ‘ajuda urgente’ muitas pessoas vão simplesmente ‘ignorar’ teu post, pois não vão saber do que se trata, além do que, ninguém aqui recebe $$ para responder, e colocar qq coisa como ‘urgente’ não vai fazer diferença nenhuma!

Se vc estiver usando Struts pra controlar sua aplicação existem vários modos de controlar as exceções e exibí-las numa página.

Sendo struts eu até posso te passar um exemplo legal.

valeu cara, me desculpa pelo titulo mas foi que eu esqueci de colocar o resto. estou criando uma pagina de erros em .jsp nao utilizo nenhum framework so jsp e servlet e gostaria de saber se e possivel obter a url da pagina em que o erro ocorreu !!!

alias ficaria agradecido se vc me mandase o seu exemplo mesmo sendo em struts, para que eu possa dar uma olhada nele.

meu e-mail e felipe.nascimento@orete.com.br

desde ja muito obrigado !!!

acho q não entendi direito:

vc estah falando de erro do usuário ou exceção da aplicação?

qdo ocorre o ‘erro’ o q deve acontecer?

esclarecendo isto vai ser mais fácil ajudar

Excecao … pois gostaria de criar uma pagina de erros que obte-se a excecoes ocorridas e as apresenta-se de forma amigavel para o usuario com as seguinte informacoes :

exececao : (SQLException)
local onde a excecao ocorreu : (login.jsp)

O ideal é que vc crie uma página de erro para cada página de jsp.

Um apro login, outra pro cadastro, e assim por diante…

A página seria muito parecida, só mudando a mensagem. Claro que utilizando struts seria muito mais fácil.

Eu visualizo duas alternativas:

Simples e deselegante

  1. Crie uma página (erro.jsp) que recebe dois parâmetos, nome da exceção e página de origem, e os exiba da forma q lhe convier.
  2. Em cada página jsp que vc criar coloque todo o código dentro de um bloco try/catch. Por exemplo a página de login (login.jsp):

<% try { %> <html> <head><title>Login</title></head> <body> <%-- conteudo da pagina de login, acesso a BD, etc etc etc --%> </body> </html> <% catch (Throwable exc) {%> <jsp:forward page="erro.jsp"> <jsp:param name="excecao" value="<%=exc.getClass().getName()%>" /> <jsp:param name="origem" value="login.jsp" /> </jsp:forward> <% } %>

Nota: Se o conteúdo interno do bloco try/catch tiver mais de 64kb ocorrerá uma exceção em tempo de compilação, caso isso ocorrer deve-se separar esse blocão em blocos menores

Complexa e elegante

  1. Configure no web.xml da sua aplicação o redirecionamento para uma página de erro quando houver um ERRO HTTP >= 500 (Erros de servidor).
  2. Analise o container jsp que vc está usando e verifique se ele coloca a exceção lançada em alguma variável/atributo da aplicação e exiba a exceção do modo que melhor lhe convier.
    Deste modo vc será capaz de pegar todas as exceções lançadas, inclusive as exceções do container web. Talvez isto não seja bom!

Acho que a melhor solução pra vc seria a primeira, mas a segunda é interessante se vc quiser conhecer melhor como funcionam os containers web.

PS.: se vc usasse Struts sua vida seria muito mais fácil… :slight_smile: