인터셉터는 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() | 모든 작업이 완료 된 후에 실행된다. |
출처: http://roadrunner.tistory.com/433 [삶의 조각들]
'프로그래밍 > Spring & MyBatis' 카테고리의 다른 글
[Spring]@ModelAttribute @RequestBody @PathVariable (0) | 2018.03.11 |
---|---|
계층화 아키텍처(Layered architecture) (0) | 2018.03.01 |
[Mybatis] 동적 쿼리문 작성시 자바메소드 호출 (0) | 2018.02.18 |
[Mybatis] 쿼리 파라미터 null 처리방법 (0) | 2018.02.15 |
Transaction (0) | 2018.02.15 |