본문 바로가기
백엔드/Spring

[Spring] Servlet 응답, 요청 객체를 얻는 방법 (HttpServletRequest, HttpServletResponse)

by RoJae 2021. 11. 4.

보통 스프링에서, controller의 파리미터로 선언을 하면

서블릿 요청, 응답 객체를 가져올 수 있다.

 

하지만, controller의 파리미터가 아니라면 어떻게 할까?

 

 

1. 메소드 내부에서 사용 (>= Spring 2.0 required)

HttpServletRequest request = 
        ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes())
                .getRequest();

 

2. 메소드 외부에서 사용 (supported by >= 2.5, Spring 3.0 for singelton beans required!)

@Autowired
private HttpServletRequest request;

 

3. 나아가 아래와 같이 사용할 수도 있다.

ServletRequestAttributes sessionAttr = ((ServletRequestAttributes) RequestContextHolder .getRequestAttributes());

HttpServletRequest request = sessionAttr.getRequest();
HttpServletResponse response = sessionAttr.getResponse();

 

참고

https://stackoverflow.com/questions/559155/how-do-i-get-a-httpservletrequest-in-my-spring-beans

 

How do I get a HttpServletRequest in my spring beans?

I'm developing an app with a Flex-based front end and a Spring/Hibernate back-end. To get Facebook integration working in the way I've got it currently, I need to read the cookies set in javascrip...

stackoverflow.com

 

댓글