1. Httpservlet
- [설명]
- 웹 서버에서 실행되는 자바 프로그램입니다
- HTTP 통신을 사용하여 웹 클라이언트로부터 요청을 받고 응답하는 기술 입니다
- 일반적인 서블릿을 상속하는 GenericServlet, HTTP 서블릿을 상속하는 HttpServlet이 존재 합니다
2. DispatcherServlet
- [설명]
- Spring MVC의 핵심 요소 입니다
- 클라이언트로부터 어떤 요청이 들어오면 서블릿 컨테이너(ex. 톰캣)이 요청 받습니다
- 공통 작업은 DispatcherServlet에서 처리하고, 이외 작업은 적절한 세부 컨트롤러로 위임 합니다
- HttpServlet 을 상속하고 있습니다
- [구조]
- DispatcherServlet -> FrameworkServlet -> HttpServletBean -> HttpServlet 상속 구조를 갖고 있습니다
- [동작 과정]
- 클라이언트의 웹 요청(HttpServletRequest) 가 들어 옵니다
- 웹 요청을 LocaleResolver, ThemeResolver, MultipartResolver 인터페이스 구현체에서 분석합니다
- 웹 요청을 HandlerMapping 에 위임하여 해당 요청을 처리할 Handler(Controller)를 탐색합니다
- 찾은 Handler를 실행할 수 있는 HandlerAdapter 를 탐색합니다
- 찾은 HandlerAdapter를 사용해서 Handler의 메소드를 실행한다. 이때, Handler의 반환값은 Model 과 View 입니다
- View 이름을 ViewResolver 에게 전달하고, ViewResolver는 해당하는 View 객체를 반환합니다
- DispatcherServlet은 View에게 Model을 전달하고 화면 표시를 요청하는데, 이때, Model이 null이면 View를 그대로 사용한다. 반면, 값이 있으면 View에 Model 데이터를 렌더링 합니다
- 최종적으로 DispatcherServlet은 View 결과(HttpServletResponse) 를 클라이언트에게 반환합니