La direttiva page delle pagine JSP possiede un attributo, errorPage, che permette di specificare una pagina di errore da mostrare in caso avvenga un’eccezione non gestita.
La pagina di errore può settare a true l’attributo isErrorPage, in modo da ottenere l’oggetto implicito exception e ricavare la fonte dell’eccezione.

Nell’esempio qui di seguito, utilizzeremo due semplici pagina.
La prima (index.jsp) contiene un semplice form con una casella di testo dove dovremo inserire la nostrà età. Questo valore verrà trasformato in un oggetto Integer e verrà stampato.
In caso il valore non sia un intero, verrà sollevata un’eccezione che noi non gestiremo. A quel punto interverrà la pagina di errore, che stamperà lo stack trace dell’eccezione:

File index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.lang.String, java.lang.Integer" %>
<%@page errorPage="error.jsp" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Test</title>
    </head>
    <body>
        <form action="index.jsp" method="POST">
            <input type="text" name="age" value="La tua et&agrave;"
                   onclick="this.select();"/>
        </form>

        <%
        String strAge = request.getParameter("age");

        if(strAge != null && !strAge.equals(""))
        {
            Integer age = Integer.parseInt(strAge);
            out.print("La tua et&agrave;: ");
            out.print(age.toString());
        }
        %>
    </body>
</html>

File error.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%@ page isErrorPage="true" import="java.io.PrintWriter"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Errore</title>
    </head>
    <body>
        <h1><center>Si &egrave; verificato un errore!</center></h1>
        <br/>
        <%
        if(exception != null)
        {
            PrintWriter writer = new PrintWriter(out);
            exception.printStackTrace(writer);
        }
        %>
        <br/><br/>
        <a href="index.jsp">Home</a>
    </body>
</html>