Одна идея состоит в том, чтобы установить заголовок ответа в объекте ответа в фильтре перед вызовом сервлета.
Другая задача - предоставить сервлету оболочку ответа, которая предотвращаетреальный ответ от фактического совершения.Это может повлечь за собой буферизацию тела ответа в памяти.
Но я думаю, что лучший подход - это изменить сервлеты так, чтобы они устанавливали требуемые заголовки.
Должен ли я буферизовать весь ответ, предоставив свой собственный выходной поток оболочке?Могу ли я переписать flush () или что-то в этом роде?
Вам решать, как это реализовать.Ограничение заключается в том, что объект-оболочка ответа должен каким-то образом организовывать добавление специального заголовка до начала записи тела ответа.Концептуально простой способ состоит в том, чтобы буферизовать тело ответа, но вы также можете получить оболочку ответа, чтобы обеспечить поток вывода / записи, который добавляет заголовок перед первым сбросом к реальному потоку вывода записи / записи.
Я беспокоюсь о буферизации, вызывающей проблемы с производительностью
Да, это вполне возможно, хотя вам нужно будет просмотреть все веб-приложение, чтобы определить, является ли это значительным.
С точки зрения производительности, лучшее решение - заставить сервлет установить сам заголовок.