LINUX.ORG.RU

[java] servlet error handling


0

1

Здравствуйте!
Есть веб-приложение, состоящее из 2х частей:
-внутренняя (а-ля админка с jsp страничками)
-внешняя (выхлоп сервлета)

Нужно сделать следующее:
Если возникает error/exception во время работы с внутренней частью, то пускай выдает stacktrace.
Если возникает error/exception во время работы с внешней частью (т.е. кто-то извне делает запрос к сервлету, который должен вернуть сгенерированный html-код, но возникает ошибка), то сервлет не должен выдавать stacktrace, а должен выдавать какой-нибудь кусок html-кода (например, с надписью error).

Если в web.xml указываю:

    <error-page>
        <exception-type>java.lang.Throwable</exception-type>
        <location>/error.jsp</location>
    </error-page>
то правило работает для всего приложения. А нужно, чтобы только для конкретного сервлета...

★★★★★

Пока что решил следующим образом:
1. В web.xml прописал вышесказанное.
2. Создал страницу errorhandler.jsp (в ней вывожу stacktrace)
3. Для каждой .jsp, для которой нужно выводить stacktrace прописал <%@page errorPage=«errorhandler.jsp»%>

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

kovrik ★★★★★ ()

Обернул в сервлете все try-catch'ами, а для остального - errorPage со stacktrace'ом

kovrik ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.