[Spring] Http Request에 대한 DispatcherServlet 동작과정공부/Spring2021. 11. 13. 22:47
Table of Contents
반응형
DispatcherServlet 동작과정
- @Controller 인 경우
- ① Client(사용자)에서 브라우저 통해 Http Request 보내면 DispatcherServlet이 받음
- ② HandlerMapping한테 지시하여 Http Request URI에 맞는 Handler(Controller)를 찾음
- ③ 해당 Handler를 실행할 수 있는 HandlerAdapter를 탐색
- ④ 찾은 HandlerAdapter를 사용해서 Handler Method를 실행
- ⑤ 개발자가 만든 비즈니스 로직을 수행 후 View name(ex. "index")과 model (key, value 형태) 반환받음
- ⑥ DispatcherServlet은 ViewResolver 에게 View name전달하여 해당 View 파일을 찾게 됨
- ⑦ 찾은 View 파일에 Model 객체를 전달하여 데이터가 있을 경우 렌더링하고, 없을 경우 View를 그대로 사용
- ⑧ 최종적으로 DispatcherServlet 은 View 결과를 HttpServeltResponse에 담아서 Client(사용자)에게 반환
- @RestController 인 경우
- View를 찾고 처리하는 과정(⑥,⑦) 없이, 비즈니스 로직 수행 결과를 HttpServeltResponse(응답객체)에 담아서 반환함
요약
- DispatcherServlet을 Front Controller라고 부름
- 요청/로직실행/응답을 프레임워크에서 제어권 가지고 처리해주기 때문에 개발자는 비지니스 로직에 집중 가능해짐 (IoC, 제어의 역전)
개발자가 비즈니스 로직 생성하고 Mapping 설정하면,
Http Request 요청시 DispatcherServlet이 해당 Mapping을 찾아 정보 전달 및 함수 실행하고
그 결과를 HttpServletResponse 객체 담아 요청자에게 반환하게 됨
=> 서버에서 받은 응답(파일,데이터 등)을 브라우저 엔진을 통해 화면에 표출함 !
참고
https://tecoble.techcourse.co.kr/post/2021-06-25-dispatcherservlet-part-1/
https://tecoble.techcourse.co.kr/post/2021-07-15-dispatcherservlet-part-2/
반응형
'공부 > Spring' 카테고리의 다른 글
[Spring] javax.servlet.ServletException: Circular view path ..에러 (0) | 2022.01.07 |
---|---|
[Spring] JVM 구조와 Garbage Collection(GC) (0) | 2021.11.30 |
[gradle] General error during semantic analysis: Unsupported class file major version 60 에러 (0) | 2021.10.11 |
[Java] toString() - 객체에 정의시 출력문에서 자동 호출되는 함수 (0) | 2021.10.06 |
[Java] window10 에 JDK 환경변수 설정하기 (0) | 2021.09.19 |
@leejinwoo1126 :: 천천히 하나씩
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!