Я не мог найти авторитетного ответа на этот вопрос с помощью какого-то Googling. В сервлетах Java можно получить доступ к телу ответа через response.getOutputStream() или response.getWriter(). Должен ли один вызов .close() в этом потоке после того, как он был записан?Должен ли один вызов .close() на HttpServletResponse.getOutputStream() /. GetWriter()?
С одной стороны, существует увещевание Блохана, чтобы всегда закрывать выходные потоки. С другой стороны, я не думаю, что в этом случае есть основной ресурс, который необходимо закрыть. Открытие/закрытие сокетов управляется на уровне HTTP, чтобы такие вещи, как постоянные соединения и т. Д.
Это правильно. Следует отметить, что в некоторых случаях вам может понадобиться очистить поток, и это вполне допустимо. – toluju
Существует еще один побочный эффект закрытия писателя. Вы также не сможете установить код состояния через response.setStatus после его закрытия. –
Следуйте этому совету. Это сэкономит вам много боли. Я бы не flush(), если вы не знаете, почему вы это делаете - вы должны позволить буферизации дескриптора контейнера. – Hal50000