Я хочу написать сервлет, который будет возвращать HTTP-ответ, например:
HTTP/1.1 500 <short custom message>
Content-Length: ...
<longer custom message>
Причина в том, что я хочу, чтобы программный клиент мог обрабатывать ответное сообщение, чтобы получить конкретный ответ, ноЯ также хочу заполнить тело ответа более подробным объяснением, чтобы его можно было легко использовать с помощью браузера.
Теперь HttpServletResponse имеет метод sendError (int, String), который позволяет мне указать код ошибки исообщение.Javadocs только говорят, что сообщение будет встроено в какую-то html-страницу, но ничего о настройке ответного сообщения http.После вызова этого метода вы не можете писать что-либо еще в ответ.В моих тестах (с jetty) сообщение используется и для ответа http, и для html тела, что было бы хорошо для меня, за исключением того, что я хочу указать две разные строки, и я не думаю, что настройка ответа httpсообщение гарантировано с другой реализацией.
Существует также метод setStatus (int), который вы можете вызывать с любым кодом, а затем вы можете написать свое собственное тело HTML.Это близко, за исключением того, что вы не можете указать ответное сообщение http.
Наконец, есть метод setStatus (int, String), который на самом деле делает именно то, что я хочу, но он устарел из-за какой-то двусмысленности,Я предполагаю, что некоторые контейнеры сервлетов записывают сообщение в тело ответа и закрывают ответ.
Помимо использования устаревшего метода, я предполагаю, что я ввернут здесь, но мне любопытно, если кто-нибудьеще знает какие-нибудь хитрости?