핸들러 -> 컨트롤러라고 생각하면 된다. 핸들러가 좀 더 넓은 의미 

 

DIspatcherServlet의 구조 

 

스프링 MVC의 프론트 컨트롤러는 디스패처 서블릿(DIspatcerServlet)이다. 

 

DispatcherServlet 서블릿 등록 

  • DispacherServlet도 부모 클래스에서 HttpServlet을 상속 받아서 사용하고, 서블릿으로 동작한다. 
  • DisparcherServlet -> FrameworkServlet -> HttpServletBean -> HttpServlet 
  • 스프링 부트는 DIsparcherServlet을 서블릿으로 자동으로 등록하면서 모든 경로 urlPatterns="/"에 대해서 매핑 

 

 

요청 흐름 

  1. 서블릿 호출 -> HttpServlet이 제공하는 Service()가 호출 
  2. 스프링 mvc는 DispatcherServlet의 부모인 FrameowkrServlet에서 Service()를 오버라이드 해두었다. 
  3. FrameworkServlet.Service()를 시작으로 여러 메서드가 호출되면서 DispatcherServlet.doDispatch() 

 

컨트롤러 호출하기 위해 필요한 두가지 

  •  HanlderMappin(핸들러 매핑) 
    • 핸들러 매핑에서 이 컨트롤러를 찾을 수 있어야 한다. 
  •  HandlerAdapter(핸들러 어댑터) 
    • 핸들러 매핑을 통해 찾은 핸들러를 실행할 수 있는 핸들러 어댑터가 필요하다. 

+ Recent posts