Не может установить заголовок в JSP. Ответ уже фиксируется

WebSphere регистрирует предупреждающее сообщение “SRTServletRes W, ПРЕДУПРЕЖДАЮЩИЙ: не Может установить заголовок. Ответ, уже фиксировавший” для одного запроса JSP. Мне нужны respone заголовки позже в моем коде. Я провел некоторое исследование и понял, что Servlet пытается отправить больше данных в поток вывода, но поток уже фиксировавший. Я не понял, почему это происходит только с этим конкретным JSP, поскольку этот код Servlet хорошо работает для другого JSPs. Эта страница не перенаправляется, и я возвращаю ответ без заголовков ответа.

10
задан Ritesh 1 October 2014 в 18:06
поделиться

1 ответ

Когда ответ зафиксирован, это означает, что, по крайней мере, заголовки уже отправлены на сторону клиента. Вы не можете установить/изменить заголовки, когда ответ уже зафиксирован, потому что уже слишком поздно.

Ответ фиксируется при выполнении одного или более из следующих условий:

  • HttpServletResponse#sendRedirect().
  • Более 2K уже было записано в ответ, либо сервлетным, либо JSP.
  • Больше 0K, но меньше 2K было записано и flush() было вызвано в поток вывода ответа, либо сервлет, либо JSP.

Ограничение буфера в 2К настраивается в конфигурации сервера приложений.

Необходимо изменить логику кода таким образом, чтобы она устанавливала только заголовки до фиксации ответа. Вы должны никогда не устанавливать/менять заголовки ответа с помощью скриплетов внутри/половинунунуну JSP. Это следует делать только в фильтре перед продолжением цепочки или в регуляторе страниц сервлетах перед отправкой запроса. Также следите за тем, чтобы ни один из них не был вызван включающим файлом JSP.

25
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: