[ Team LiB ] Previous Section Next Section

Recipe 9.4 Sending an Error from a JSP

Problem

You want to use a JSP to manually send a response error to a client.

Solution

Use the response implicit object and the sendError method inside a JSP scriptlet.

Discussion

If you want to send a response error from a JSP, then simply grab the response implicit object inside a scriptlet and call sendError( ) on it. Make sure not to call sendError( ) after already flushing or committing the response to the client, or the method will throw a java.lang.IllegalStateException. The JSP code in Example 9-4, which could be a standalone JSP or a fragment of a larger page, results in the display of Figure 9-3 when requested with the following query string: "?client-unauthorized=true".

Example 9-4. Using the response implicit object to send a response error from a JSP
<%@ taglib uri=
  "http://java.sun.com/jstl/core" prefix="c" %>

<c:if test="${param.client-unauthorized}" >

    <% response.sendError(401,
     "You are not authorized to view the requested component");
     %>

</c:if>

See Also

Recipe 9.1 on declaring exception handlers in the deployment descriptor; Recipe 9.2 on developing a servlet error handler; Recipe 9.3 on sending an error from a servlet; Recipe 9.5 on using JSPs to handle errors; Recipe 9.6 on declaring in a JSP that another JSP will handle its exceptions; Chapter 1 on the deployment descriptor; the Java servlet specification, which covers error handling in Chapter SRV.9.9: http://java.sun.com/products/servlet/index.html.

    [ Team LiB ] Previous Section Next Section