[Spring] HandlerInterceptor와 이를 활용한 로그인 처리
- HandlerInterceptor 란?
HandlerInterceptor는 특정한 URI 호출을 '가로채는' 역할을 합니다. 이를 이용하여 기존 컨트롤러의 로직을 수정하지 않고도, 사전이나 사후 제어가 가능합니다.
1.1 HandlerInterceptor 메소드
▶ preHandle(request, response, handler)
지정된 컨트롤러의 동작 이전에 수행할 동작 (사전 제어).
▶ postHandle(request, response, handler, modelAndView)
지정된 컨트롤러의 동작 이후에 처리할 동작 (사후 제어).
Spring MVC의 Dispatcher Servlet이 화면을 처리하기 전에 동작.
▶ afterCompletion(request, reponse, handler, exception)
Dispatcher Servlet의 화면 처리가 완료된 이후 처리할 동작.
- HandlerInterceptor 사용 설정
HandlerInterceptorAdaptor를 상속한 Interceptor 클래스를 작성합니다.
- 로그인 처리
3.1 LoginInterceptor
로그인한 사용자에 대해서 postHandle()을 통해 HttpSession에 보관하는 처리.
LoginInterceptor.java