Я разрабатываю веб-приложение с JSF. Я протестировал его, когда я смог, но время от времени исключения на этапе выполнения выдаются.
Так, как перенаправить пользователя к специальной ошибочной странице каждый раз, когда исключение выдается (вместо того, чтобы отобразить 500 Ошибок с полными журналами кота)?
Просто объявите
в web.xml
, где вы можете указать страницу, которая должна отображаться на определенном Throwable
(или любой из его подклассов) или код состояния HTTP . Например.
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
, который будет отображать страницу ошибки в любом подклассе java.lang.Exception
, но не java.lang.Throwable
или java.lang.Error
. Таким образом, у вас может быть собственная страница ошибок для любого типа Throwable
. Например. java.sql.SQLException
, java.io.IOException
и так далее.
Или
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
, который отображает страницу ошибки при ошибке HTTP 500, но вы также можете указать другие для 404 (Страница не найдена), 403 (Запрещено) и т. Д.
Если вы объявите <% @ page isErrorPage = "true"%>
в верхней части ошибки .jsp
, то у вас есть доступ к сгенерированному исключению
(и, следовательно, также ко всем его геттерам) $ {exception}
в EL.
<p>Message: ${exception.message}</p>
Также см. Учебник Java EE 5 по этой теме .
В вашем web.xml:
<error-page>
<error-code>500</error-code>
<location>/errorpages/500.jsp</location>
</error-page>
Вы также можете перехватить определенные исключения или исключения, которые расширяют Throwable
:
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorpages/500.jsp</location>
</error-page>