- 인터셉터(Interceptor) 란 ?
컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 한다.
예를들어 관리자만 접근할 수 있는 페이지의 경우, 페이지에 접근하기 전에 관리자 인증을 유도하는 용도로 활용할 수 있다.
주로 로그인과 같은 권한 체크에 유용하게 사용된다.
이와 유사한 역할을 하는 것이 'Filter'인데 Filter와 Interceptor는 비슷한 역할을 하지만 호출 시점에 차이가 있다.
1. 호출 시점.
Filter는 DispatcherServlet 이 실행되기 전, Interceptor는 DispatcherServlet이 실행된 후에 호출된다.
2. 설정 위치
Filter는 web.xml에서 설정하고, Interceptor는 spring-servlet.xml에서 설정한다.
Interceptor 구현 방법은 2가지가 있는데, 하나는 HandlerInterceptor인터페이스를 구현하는 방법과
다른 하나는 HandlerInterceptorAdapter 클래스를 상속 받는 방법이 있다.
메서드는 Controller의 실행 직전, 직후에 실행되는 preHandle()과 postHandle()이 있고,
뷰를 렌더링 한 후의 콜백 핸들러 실행 결과에 따라 호출되는 afterCompletion()이 있다.
'Java' 카테고리의 다른 글
자바 람다(Lamda) 기초 (0) | 2021.02.13 |
---|---|
자바 스트림(Stream) (0) | 2021.02.09 |
자바 HashMap 탐색 entrySet(), keySet(), Iterator() (0) | 2021.02.03 |
자바 Primitive Type과 Reference Type (0) | 2020.02.26 |
자바 [getOrDefault, putIfAbsent] (0) | 2020.01.22 |