Java tutorial
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ErrorDisplay extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); String code = null, message = null, type = null, uri = null; Object codeObj, messageObj, typeObj; Throwable throwable; codeObj = req.getAttribute("javax.servlet.error.status_code"); messageObj = req.getAttribute("javax.servlet.error.message"); typeObj = req.getAttribute("javax.servlet.error.exception_type"); throwable = (Throwable) req.getAttribute("javax.servlet.error.exception"); uri = (String) req.getAttribute("javax.servlet.error.request_uri"); if (uri == null) { uri = req.getRequestURI(); // in case there's no URI given } // Convert the attributes to string values if (codeObj != null) code = codeObj.toString(); if (messageObj != null) message = messageObj.toString(); if (typeObj != null) type = typeObj.toString(); // The error reason is either the status code or exception type String reason = (code != null ? code : type); out.println("<HTML>"); out.println("<HEAD><TITLE>" + reason + ": " + message + "</TITLE></HEAD>"); out.println("<BODY>"); out.println("<H1>" + reason + "</H1>"); out.println("<H2>" + message + "</H2>"); out.println("<PRE>"); if (throwable != null) { throwable.printStackTrace(out); } out.println("</PRE>"); out.println("<HR>"); out.println("<I>Error accessing " + uri + "</I>"); out.println("</BODY></HTML>"); } }