Interview Questions

JSP Error Page

In Web applications, it is generally a best practice to forward to an error page whenever an exception occurs.

The following JSP is a template for one such error page.

error.jsp

<%@ page language="java" isErrorPage="true" %>
<%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>

<html>

<head>
        <title>Error Page</title>
</head>

<body bgcolor="green">

        <div >
                <h3>Error Page</h3>
                <div >
                        This error page is only for debugging.
                </div>

                <div >
                        <em>Error </em><br />
                       
                        <% if (exception != null) { %>
                    <pre><% exception.printStackTrace(new java.io.PrintWriter(out)); %></pre>
                 <% } else if ((Exception)request.getAttribute("javax.servlet.error.exception") != null) { %>
                    <pre><% ((Exception)request.getAttribute("javax.servlet.error.exception"))
                                          .printStackTrace(new java.io.PrintWriter(out)); %></pre>
                 <% } else { %>
                        <br/>No error details
                 <% } %>
                </div>
                <hr>
               
                <div >
                        <em>HTTP request headers sent from browser</em><br />
                        <c:forEach var="hdr" items="${header}">
                            <b>${hdr.key}</b>: ${hdr.value}<br />
                        </c:forEach>
                </div>
                <hr>
                <div >
                        <em>HTTP Request attributes</em><br />
                        <c:forEach items='${requestScope}' var='p'>
                                        <b>${p.key}</b>: ${p.value}<br />
                        </c:forEach><br />
                       
               
                        <b>Context Path</b>: <c:out value="${pageContext.request.pathInfo}" /><br />
                        <b>Path Translated</b>: <c:out value="${pageContext.request.pathTranslated}" /><br />
                        <b>Query String</b>: <c:out value="${pageContext.request.queryString}" /><br />
                        <b>Request URI</b>: <c:out value="${pageContext.request.requestURI}" /><br />
                        <b>Access Method</b>: <c:out value="${pageContext.request.method}" /><br />
                                <b>Auth Type</b>: <c:out value="${pageContext.request.authType}" /><br />
                </div>
                <hr>
               
                <div >
                        <em>HTTP Session attributes</em><br />
                        <c:forEach items='${sessionScope}' var='p'>
                                <b>${p.key}</b>: ${p.value}<br />
                        </c:forEach>
                </div>
        </div>
       
</body>

</html>