package javacodebook.server.error;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* Auswertung einer Exception in einem Servlet.
*/
public class ErrorMessageServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, java.io.IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("");
out.println("
");
out.println("Es ist ein Fehler aufgetreten
");
out.println("Fehlermeldung: ");
out.println(req.getAttribute("javax.servlet.error.message") + "
");
out.println("Details: ");
out.println(req.getAttribute("error_detail"));
out.println("");
out.println("");
}
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, java.io.IOException {
doGet(req, res);
}
}
--- Neue Klasse ---
package javacodebook.server.error;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* Simuliert eine Ausnahme vom Typ ServletException und gibt eine Fehlermeldung
* mit.
*/
public class Error extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, java.io.IOException {
try {
//hier tritt ein Fehler in der Anwendung auf
throw new Exception("Anwendungsfehler!");
} catch(Exception e) {
//Eine Fehlermeldung an das ErrorMessageServlet weiterleiten
req.setAttribute("error_detail", "Das hätte nicht passieren dürfen");
throw new ServletException(e.getMessage());
}
}
}