2010년 1월 28일 목요일

스프링에서 현재 HttpServletRequest 가져오는 방법

프로젝트를 하다 보면 현재 요청된 HttpServletRequest를 찾고자
할때가 있습니다.
흔한 케이스는 아니지만 예를 들어서 Service,DAO에서
현재의 request가 필요할때가 있을수 있습니다.
(물론 컨트롤러에서 인자로 넘기면 되죠^^)
정확한 케이스를 말하긴 힘들지만 실무에서
꼭 필요할때가 있습니다.
그래서 현재의 Request를 스프링에서 가져 오는 방법을
설명 하고자 합니다.

  • RequestContextListener 설정하기
web.xml 파일에 아래와 같이 리스너를 설정 합니다.

<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

  • 현재 HttpServletRequest 객체 가져오는 함수 만들기


public static HttpServletRequest getCurrentRequest() {

ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes();

HttpServletRequest hsr = sra.getRequest();
return hsr;
}

댓글 없음:

댓글 쓰기