[Service Flow]
HTTP 요청 -> WAS(톰캣) -> 필터 -> "Dispatcher" Servlet -> 인터셉터 -> 컨트롤러
[Exception Flow]
WAS(톰캣) <-- 필터 <-- 서블릿 <-- 인터셉터 <-- 컨트롤러(throw Exception)
--> WAS(톰캣: 예외처리 Servlet 재요청) --> 필터 -> 서블릿 --> 인터셉터 --> 컨트롤러 --> View (Error Page)
1. 로그인터셉터 생성
org.springframework.web.servlet.HandlerInterceptor 인터페이스 구현
오버라이드 (Overrride)
preHandle()
--> 컨트롤러 호출 전 실행영역
postHandle()
--> 컨트롤러 호출 후 실행영역 (예외발생시 호출X)
afterCompletion()
--> 브라우저에 View(화면) 렌더링 후 실행영역 (예외발생시 호출O)
2. WebConfig 수정 (로그인터셉터 등록)
org.springframework.web.servlet.config.annotation.WebMvcConfigurer 인터페이스 구현
오버라이드 (Overrride)
addInterceptors()
--> 인터셉터 스프링에 등록, 실행순서, 필터링 URL패턴, 필터제외 URL패턴 등.. 이외.
디테일 한 설정이 가능.
3. 인터셉터 적용 확인 (LogInterceptor)
HTTP 요청 -> WAS(톰캣) -> LoginCheckFilter -> "Dispatcher" Servlet -> LogInterceptor (preHandle) -> 컨트롤러
->LogInterceptor (postHandle) -> Browser View 렌더링 -> LogInterceptor (afterCompletion)
4. 로그인 체크 인터셉터 생성
오버라이드 (Overrride)
preHandle()
--> 컨트롤러 호출 전 실행영역 ( return false; 일시, Controller 호출X)
5. WebConfig 수정 (로그인체크 인터셉터 등록)
addInterceptors('new 인터셉터 클래스 인스턴스()')
--> 스프링 인터셉터 등록
1번: 로그인터셉터, 2번: 로그인체크인터셉터 순서지정 및 인터셉터 별 URL 패턴을 지정.
3. 인터셉터 적용 확인 (LogCheckInterceptor)
* 인터셉터의 order() 지정 순서로 호출된다.
* HTTP 요청 -> WAS(톰캣) -> 필터 -> "Dispatcher" Servlet -> 인터셉터1(LogInterceptor)
-> 인터셉터2 (LoginCheckInterceptor) -> 컨트롤러
'SpringBoot' 카테고리의 다른 글
[SpringBoot] RestAPI요청 예외처리(2) (0) | 2021.08.26 |
---|---|
[SpringBoot] RestAPI요청 예외처리 (1) (0) | 2021.08.18 |
[SpringBoot] 쿠키 생성 및 활용 (0) | 2021.07.25 |
[SpringBoot] 서블릿 필터 생성 및 적용 (0) | 2021.07.25 |
[SpringBoot] 예외처리와 에러페이지 (0) | 2021.07.25 |