Обработка ошибок JSP

При выполнении web-приложений, как и любых других, могут возникать ошибки и исключительные ситуации. Три основных типа исключительных ситуаций:

– код «404 Not Found». Возникает при неправильном наборе адреса или обращении к станице, которой не существует;

– код «500 Internal Server Error». Возникает при вызове сервле­том метода sendError(500) для объекта HttpServletResponse;

– исключения времени исполнения. Исключения, генерируемые web-приложением и не перехватываемые фильтром, сервлетом или JSP.

Для обработки исключений в зависимости от типа в приложении может существовать несколько JSP-страниц, сервлетов или обычных HTML-страниц. Для настройки соответствия ошибок и обработчиков используется элемент error-page файла web.xml. Например:

<error-page>

<error-code>404</error-code>

<location>/error404</location>

</error-page>

или

<error-page>

<exception-type>java.io.IOException</exception-type>

<location>/errorIo</location>

</error-page>

В элементе error-code указывается код ошибки, в элементе exception-type – тип исключения.

Для указания страницы, обрабатывающей ошибки, возникающие при выполнении текущей страницы, можно использовать директиву

<jsp:directive.page errorPage="path" />, где path – эту путь к странице-обработчику. Ниже приведен пример, использующий именно такой способ. При нажатии на кнопку генерируется ошибка java.lang.NullPointerException, и управление передается странице error_hand.jsp

<!–пример # 19 : генерация ошибки : gen_error.jspx –>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

xmlns:c="http://java.sun.com/jsp/jstl/core"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8"/>

<jsp:directive.page errorPage="/error_hand.jspx" />

<html><head><title>Генерация исключения</title></head>

<body>

<h2>При нажатии кнопки будет сгенерирована ошибка!</h2>

<form>

<input type="submit" name="gen"

value="Сгенерировать ошибку"/>

</form>

<c:if test="${not empty param.gen}">

<jsp:declaration>String str;</jsp:declaration>

<jsp:scriptlet>str.length();</jsp:scriptlet>

</c:if>

</body></html>

</jsp:root>

Страница, вызываемая при ошибках, может иметь статический вид, но при необходимости сообщает о типе и месте возникшего исключения в понятной для клиента приложения форме.

<!–пример # 20 : ERROR PAGE : error_hand.jspx –>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8" />

<jsp:directive.page isErrorPage="true" />

<html><head><title>Сообщение об ошибке</title></head>

<body>

<p>Сгенерирована ошибка! <br/>

<jsp:expression>exception.toString()</jsp:expression>

</p></body></html>

</jsp:root>

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100