Filter
Interceptor
AOP
[이미지 출처] https://sallykim5087.tistory.com/158
Filter
가 가장 밖에 있고 그안에 Interceptor
, 그안에 AOP
가 있는 형태이다.Filter → Interceptor → AOP → Interceptor → Filter
순으로 거치게 된다.init
이 실행되고, 그 후 doFilter
가 실행된다. preHandler
가 실행된다.postHandler
, after Completion
, doFilter
순으로 진행이 된다.destroy
가 실행된다.java.servlet.Filter
인터페이스를 상속받아 구현하는 클래스DispatcherServlet
이전에 실행💡 디스패처 서블릿 (DispatcherServlet)
Front Controller
)란 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리해주는 컨트롤러이다.
[출처] https://mozzi-devlog.tistory.com/8
💡 디스패처 서블릿의 흐름 ( Spring MVC 동작순서 )
1 ) 처음 클라이언트에서 요청이 오면 디스패처 서블릿(DispatcherServlet)이 해당 요청을 받는다.
2 ) 핸들러 매핑 (Handler Mapping)을 통해 요청에 알맞은 컨트롤러를 찾아낸다.
2-1 ) 요즘에는 주로 @Controller와 @RequestMapping 관련 어노테이션을 조합하여 컨트롤러를 생성하므로, 요청을 처리할 컨트롤러는 주로 HandlerMapping의 구현체 중 하나인 RequestMappingHandlerMapping가 찾아준다.
3 ) 찾아낸 컨트롤러를 핸들러 어댑터(Handler Adapter)를 통해 해당 컨트롤러의 메서드를 실행시킨다.
4 ) 컨트롤러는 요청을 처리한 뒤 처리한 결과와 해당 뷰 정보(ModelAndView)를 다시 디스패처 서블릿에게 전달한다.
5 ) 받은 정보로 디스패처 서블릿은 View Resolver를 통해 View 파일을 찾는다.
[출처] https://mozzi-devlog.tistory.com/8
Interceptor
(인터셉터)는 요청에 대한 작업 전, 후로 가로챈다.DistpatcherServlet
이 컨트롤러를 호출하기 전, 후로 끼어들기 때문에 스프링 컨텍스트(Context, 영역) 내부에서 Controller(Handler)에 관한 요청과 응답에 대해 처리한다.출처
https://jangjjolkit.tistory.com/6
https://goddaehee.tistory.com/154
https://sallykim5087.tistory.com/158
https://greendreamtrre.tistory.com/601