1. 클라이언트의 HTTP
요청을 DispatcherServlet
(프론트 컨트롤러)이 받습니다.
2. DispatcherServlet
은 요청 처리를 위해 HandlerMapping
에게 요청을 전달합니다.
3. HandlerMapping
은 요청 정보를 통해 요청을 위임할 컨트롤러를 찾아서 DispatcherServlet
에게 반환합니다.
4. DispatcherServlet
은 요청을 컨트롤러로 위임할 HandlerAdapter를 찾아서 위임합니다.
5. HandlerAdapter
는 컨트롤러로 요청하여 비즈니스 로직을 처리합니다. Model
데이터와 View
이름을 반환합니다.
6. DispatcherServlet
은 ViewResolver
에게 View
이름을 전달하며 검색을 요청합니다.
7. ViewResolver
는 View
이름을 실제 View
객체로 변환합니다.
8. DispatcherServlet
는 View
를 실행하여 서버의 응답을 클라이언트로 반환합니다.
DispatcherServlet
: 클라이언트의 요청을 받아들이고, 요청을 처리하기 위해 다른 구성 요소들을 호출합니다. Spring의 핵심 기술로 여러 요청을 DispatcherServlet 한 곳에서 처리하도록 한다.HandlerMapping
: 요청 URL과 일치하는 컨트롤러를 찾아주는 역할을 합니다.Controller
: 요청을 처리하는 비즈니스 로직을 수행하는 컴포넌트입니다.Model
: 컨트롤러가 처리한 결과를 저장하는 객체입니다.ViewResolver
: View 이름을 실제 View 객체로 변환해 주는 역할을 합니다.View
: 컨트롤러가 처리한 결과를 보여주는 역할을 합니다.예를 들어,
웹브라우저에서 localhost:8080/hello-mvc
를 들어가면 내장 톰캣 서버가 스프링한테 넘기면 스프링은 conroller
에서 hello-mvc
를 찾고 있으면 해당 메소드를 호출하고 model(name:spring)
을 ViewResolver
(View
찾아주고 템플릿 엔진 연결 시켜줌)한테 넘기면 templates:hello-template.html
을 찾아서 템플릿 엔진인 변환하고 해당 템플릿을 반환해줍니다.
참고 자료