Exception in Servlet --> Fehlermeldung in JSP

HPB

Erfahrenes Mitglied
Hallo,
ich habe mehrere JSPs. Als errorPage habe ich "error.jsp" angegeben. Die Datei "error.jsp" wertet die Exception aus und gibt eine Fehlermeldung aus.

Wie behandle ich eine Exception in einem Servlet. Ich möchte auch die error.jsp verwenden. Ich habe versucht einen try{} & catch{}- block in das servlet eingebaut und im Catch-Block ein forward auf die error.jsp gemacht. Aber wie kann ich dann auf die Exception zugreifen?
Bei einem Fehler in einer JSP kann ich ja einfach (wg. isErrorPage="true") mit exception.getMessage() auf die Fehlermeldung zugreifen. Wie greife ich in error.jsp auf die Exception aus dem Servlet zu bzw. wie übergebe ich die Exception am besten an die error.jsp?
 
Am besten du schreibst am anfang

<% @ page errorPage="error.jsp"%>

dann wird die datei sobald irgendein fehler passiert ausgeführt. Man brauch keinen try-cattch Block mehr.
 
so macht man es bei JSPs, aber wie bei Servlets?

GEnauso mache ich es bei meinen JSPs, aber wie bei den Servlets?
 
Re: so macht man es bei JSPs, aber wie bei Servlets?

na auf der servlet-seite kannst du doch mit request.getAttribute("error") das auslesen, womit es vom per request.setAttribute("error", Exception) von der jsp aufgerufen wurde.

Ich speziell benutze aber lieber struts, das ist noch einfacher wenn mans einmal eingerichtet hat...
 
Re: so macht man es bei JSPs, aber wie bei Servlets?

vesteh ich nicht ganz. Kannst du mir das bitte näher erklären?
 
Re: so macht man es bei JSPs, aber wie bei Servlets?

HPB hat gesagt.:
GEnauso mache ich es bei meinen JSPs, aber wie bei den Servlets?

Die Errorpages holen sich die Exception aus dem Request heraus.

Schau nach unter welchen Namen die Exception im Request gespeichert ist:

Code:
<%
 Enumaration en = request.getAttributeNames().getEnumeration();
  while(en.hasMoreElements()) {
    out.println("key:"+en.getNextElement());
  }
%>

Dann kannst du dein Exception unter diesen Namen an den Request im Servlet anhängen und ein Forward auf deine error.jsp setzen

Code:
 try {
  // tu was das schief geheen kann
  }catch(DummGelaufenException e) {
    request.setAttribute([hierDenKey],e);
    request.getRequestDispatcher("/error.jsp").forward(request,response);
    return;
  }
 

Neue Beiträge

Zurück