1. Httpservlet

  1. [설명]
    1. 웹 서버에서 실행되는 자바 프로그램입니다
    2. HTTP 통신을 사용하여 웹 클라이언트로부터 요청을 받고 응답하는 기술 입니다
    3. 일반적인 서블릿을 상속하는 GenericServlet, HTTP 서블릿을 상속하는 HttpServlet이 존재 합니다

2. DispatcherServlet

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