Код состояния HTTP в веб-приложении на основе сервера Java - PullRequest
0 голосов
/ 08 августа 2011

У меня есть веб-приложение на Java, которое осуществляет обмен данными с использованием XML.Я написал сервлет, и он использует HTTP Post для загрузки файла XML с определенного клиента.После успешного завершения метода Post он отправляет клиенту сообщение 200 OK (с использованием статуса HTTP веб-сервера по умолчанию).Теперь мне нужно включить некоторый код состояния HTTP в мое приложение, чтобы клиент получал сообщение о состоянии HTTP (например, 400 неверный запрос, 502 неисправный шлюз), когда возникает проблема с загрузкой.Как добавить коды состояния HTTP в мое веб-приложение?Пожалуйста, помогите мне с предложением. Спасибо

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

Вы можете использовать HttpServletResponse#setStatus() или HttpServletResponse#sendError().

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {

    // handle upload

    // if error
    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

    // or
    response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                       "An unknown error occurred");
}

Методы отличаются тем, что они заставляют контейнер сервлета делать, поэтому выберите тот, который наиболее подходит для вашей ситуации.

  • setStatus()

    Если этот метод используется для установки кода ошибки, тогда контейнер механизм страниц с ошибками не сработает.

  • sendError()

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

Список констант кодов состояния доступен в Сводка полей javadoc . Для кодов в вашем вопросе:

1 голос
/ 08 августа 2011

response.sendError (res.SC_BAD_REQUEST, «важный_параметр нужен»); Где ответ ваш HttpServletResponse См

...