Неправильно ли добавить cookie в ответ после того, как вы уже записали в выходной буфер? - PullRequest
1 голос
/ 28 марта 2011

У меня есть ошибка, когда я добавляю cookie в HttpServletResponse, но cookie вообще не устанавливается.

Он добавляется в фильтр сервлета после того, как страница jsp уже былаоказаны.Является ли причиной того, что он не добавляется, потому что он добавляется после того, как некоторое содержимое уже было записано в выходной поток?

Ответы [ 3 ]

4 голосов
/ 28 марта 2011

Файлы cookie отправляются в заголовках HTTP, поэтому вы не можете добавить их после подтверждения ответа.Вы можете проверить, был ли ответ зафиксирован, используя response.isCommitted ().Ответ обычно не фиксируется, как только вы записываете первый байт в ответ, но как только вы сбрасываете ответ или заполняете буфер ответа.

2 голосов
/ 28 марта 2011

Поскольку cookie является частью заголовка, он должен быть установлен в ответ, прежде чем ответ будет записан в вывод.

Даже при возникновении сбоя исключение не выдается.

2 голосов
/ 28 марта 2011

Да. Файлы cookie должны быть установлены до того, как контент будет записан - они отправляются клиенту в виде заголовков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...