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()); } } }