본문 바로가기
프로그램/Spring

[Spring] 핸들러 인터셉터(HandlerInterceptor)

by 로드러너 2014. 5. 13.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

인터셉터는 Controller이 호출되기  전과 후에 요청과 응답을 참조하거나 가공할 수 있다. 인터셉터는 HandlerInterceptor를 구현해서 작성한다. 인터셉터는 하나 이상을 등록할 수 있다. Controller 의 호출과정에서 적용되는 기능은 인터셉터를 주로 사용한다.


public interface HandlerInterceptor {
    boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;
 
    void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception;
 
    void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception;
}

 메소드

 설명

 preHandle()

 Controller가 호출되기 전에 실행된다. Controller 실행 이전에 요청정보를 가공하거나 추가할 수 있다.로그인 여부를 체크하기 위해서 사용되기도 한다.

반환값이 true 이면 다음단계로 진행이된다. false 이면 모든 예정된 작업을 중단한다.

 postHandle()

 Controller가 실행된 후에 실행된다. Controller가 반환한 ModelAndView 을 참조하거나 변경할 수 있다.

 afterCompletion()

 모든 작업이 완료 된 후에 실행된다.