Спецификация сервлета выглядит как ясно и недвусмысленно на этом:
void reset()
Удаляет любые данные, которые существуют в буфере, а такжекод состояния и заголовки.Если ответ был зафиксирован, этот метод выдает IllegalStateException
.
Другими словами, если в ответ было записано достаточно данных, чтобы буфер памяти был превышен, то эти данные будут «зафиксированы», то есть фактически отправлены клиенту.После этого момента ответ не может быть переопределен, и при попытке выдается исключение.
Если это целесообразно, рекомендуется буферизовать данные вашего ответа, чтобы исключить возможность возникновения исключения.поднял на полпути через генерацию данных.Это дает вам возможность отбросить его и вместо этого вывести ответ об ошибке.Однако это не всегда возможно по соображениям производительности и / или масштабируемости.