Struts - пример пользовательского обработчика исключений
Загрузите этот пример
В структуре Struts<global-exception> используется для отображения вашей настраиваемой страницы ошибок вместо стандартной классической страницы ошибок HTTP Status 500:
Страница ошибок по умолчанию выглядит некрасиво и совсем не профессионально. Кроме того, сообщение об ошибке достаточно наглядно, чтобы утечка информации о вашей системе конечному пользователю.
1. <глобальное исключение> + обработчик исключений по умолчанию
Вот<global-exception> с примером обработчика исключений по умолчанию, объявленным в struts.config.xml, чтобы заменить страницу ошибок HTTP 500 по умолчанию на вашу настраиваемую страницу описания ошибок.
//... //...
Вышеупомянутый обработчик исключений Struts «org.apache.struts.action.ExceptionHandler» по умолчанию будет вызываться при возникновении любого исключения IOException действием и пересылать его в файлerror.jsp. Ключ является ключом в вашем файле свойств ресурсов сообщений.
Common.properties
#common module error message error.global.mesage = Ooooppps... Sometime wraong in this site, please come back later
error.jsp
Struts Global Exception Example
2. <глобальное исключение> + пользовательский обработчик исключений
В обработчике исключений по умолчанию вы не можете контролировать, как обращаться с этим исключением. В большинстве случаев вам может потребоваться зарегистрировать исключение для дальнейшего анализа. Чтобы сделать это, вам нужен собственный обработчик исключений для записи всех исключений в другое хранилище данных, например, в файловую систему или базу данных.
Вот пример настраиваемого обработчика исключений, который нужно настроить для «java.lang.Exception», чтобы он вызывал любое исключение, созданное Action. Чтобы создать собственный обработчик исключений, вам необходимо создать подкласс «org.apache.struts.action.ExceptionHandler» и переопределить метод выполнения.
MyCustomExceptionHandler.java
package com.example.common.exception; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ExceptionHandler; import org.apache.struts.config.ExceptionConfig; public class MyCustomExceptionHandler extends ExceptionHandler{ private static final Logger logger = Logger.getLogger(MyCustomExceptionHandler.class); @Override public ActionForward execute(Exception ex, ExceptionConfig ae, ActionMapping mapping, ActionForm formInstance, HttpServletRequest request, HttpServletResponse response) throws ServletException { //log the error message logger.error(ex); return super.execute(ex, ae, mapping, formInstance, request, response); } }
//... //...
Выше, когда Action генерирует исключение, оно вызывает методexecute() вашего пользовательского обработчика исключений MyCustomExceptionHandler вместо обработчика исключений по умолчанию.
Ссылка
-
Обработчик исключений Struts -http://struts.apache.org/1.x/userGuide/building_controller.html