Как получить доступ к HttpServletResponse в компоненте Spring?

У меня есть приложение с пружинной загрузкой с генератором кода чванства. Поскольку контроллеры автоматически генерируются из swagger yaml, я не думаю, что могу изменить контроллеры для доступа к HttpServletResponse.

Есть ли способ получить доступ к HttpServletResponse из класса, помеченного @Component?

Я пытаюсь получить доступ к экземпляру HttpServletResponse, чтобы установить файл cookie.

HttpServletResponse уже введен, вы можете использовать его как параметр в своем методе

George Artemiou 14.09.2018 17:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
1
1 021
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы вообще не хотите прикасаться к контроллеру, было бы сделать ваш bean-компонент spring filter bean-компонентом. В этой статье подробно рассказывается, как объявить такой компонент. После объявления вам необходимо привязать его к URL-адресу, указывающему на метод вашего контроллера.

https://www.baeldung.com/spring-boot-add-filter

Это зависит от того, какова ваша конечная цель.

Фильтр или перехватчик - это то, что вам нужно. дать доступ к запросу и ответу

mavriksc 14.09.2018 18:30

@mavriksc точно :)

Alexander Petrov 14.09.2018 20:20

Spring предоставляет статический класс (ServletRequestAttributes), который вы можете использовать для доступа к запросу / ответу из любого места в приложении:

public void method() {
        ServletRequestAttributes ra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if (ra != null) {
            HttpServletRequest request = ra.getRequest();
            HttpServletResponse response = ra.getResponse();
        }
    }

ra.getRequest() will return null if request has already been processed

Другие вопросы по теме