221008 Dispatcher Servlet의 동작 원리

Jongleee·2022년 10월 8일
1

TIL

목록 보기
74/576

Dispatcher Servlet의 동작 원리

Servlet (서블릿)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말함

출처: 위키백과

우선 servlet이 호출되면 아래와 같이 doServlce() 메서드가 호출됩니다. doService()의 코드를 쭉 읽다보면 아래에서 doDispatch() 메서드가 호출되는데요. 메서드 이름에서 알 수 있다시피, 실제로 dispatch를 실행하는 과정이 진행됩니다.

그러면 이제 doDispatch() 메서드로 넘어가서 하나하나 살펴보겠습니다.

[1] 핸들러 조회, 핸들러 어댑터 조회

가장 먼저 doDispatch()에서는 클라이언트의 요청에 해당하는 핸들러를 조회하고, 해당 핸들러를 받기 위한 어댑터를 조회합니다.

[2] 위에서 찾은 핸들러 어댑터의 handle() 메서드를 호출합니다. 이를 통해 ModelAndView를 반환하죠. 그리고 아래에서 processDispatchResult() 메서드를 호출하는데요.

[3] 뷰 렌더링 호출

processDispatchResult() 메서드는 안에서 render() 메서드를 또 다시 호출합니다.

[4] 뷰 렌더링

render() 메서드 안에서는 뷰 리졸버(viewResolver)를 통해 뷰를 찾고, 해당 view를 반환받습니다. 그리고 마지막으로 뷰를 실제로 렌더링하죠.

즉, 핸들러 조회 → 핸들러 어댑터 조회 → 핸들러 어댑터 실행 → 핸들러 실행 → ModelAndView 반환 → ViewResolver 호출 → View 반환 → 뷰 렌더링의 순

출처 : https://studyandwrite.tistory.com/463

0개의 댓글