Spring boot (и в частности Spring MVC, который в данном случае является частью spring boot) обеспечивает абстракцию над HttpResponse низкого уровня, который является частью спецификации сервлета.
В двух словах, эта абстракция избавляет вас от необходимости думать с точки зрения протокола Http и позволяет сосредоточиться на бизнес-логике, что хорошо.
Так что, если вы можете избежать HttpServletResponse
- сделайте это всеми средствами (и это то, что вы обычно делаете в своих приложениях).
Вы можете создавать объекты (и Spring преобразует их для вас, если его REST), вы можете вернуть ResponseEntity
, что означает "status" + "body" - spring сделает все преобразования.
Итак, рассмотрим эти методы в первую очередь.
Теперь иногда вам приходится манипулировать ответом на низком уровне, в данном случае вам нужно работать с объектом HttpServletResponse.
Пример этого, если вы хотите вернуть двоичные данные, которые не могут быть легко преобразованы. Например, если вы хотите подготовить zip-файл и отправить его обратно в результате HTTP-запроса, вам нужно получить более мелкий элемент управления низкого уровня, в этом случае лучше начать с параметра HttpServletResponse передан в метод контроллера.