2015-07-30 4 views
0

У меня есть сервлет обработки пользовательских ошибок, которые поймать все throwables:Tomcat Servlet Пользовательские ошибки

<error-page> 
     <exception-type>java.lang.Throwable</exception-type> 
     <location>/Exception</location> 
    </error-page> 

Дело в том, этот сервлет будет делать прямой запрос о разрешении и установить некоторые заголовки пользовательского ответа. Я хочу, чтобы он также правильно установил код состояния http, но кажется, что если я установил код состояния http для ответа, тогда я перезвоню, код ответа автоматически перейдет к 500.

Почему?

+0

Пожалуйста, добавьте, как вы переопределяете статус в java-коде –

+0

Просто простой response.setStatus (xxxx) – ALQH

ответ

0

Если вы пытаетесь соблюдать правильный код ответа Throwables, то я думаю, что 500 подходит.

500 Внутренняя ошибка сервера Общее сообщение об ошибке, заданное при возникновении непредвиденного состояния и не более подходящее сообщение.

если вы намеренно хотите выполнять что-то другое, то вы можете сделать это с ниже:

response.sendError(HttpServletResponse.SC_BAD_REQUEST); 

или

response.sendError(HttpServletResponse.SC_FORBIDDEN); 

Я имею в виду вы можете дать любой желаемый формат.

+0

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