Spring MVC Processing Sequence
1.
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ย Dispatcher Servlet์ ์ ๋ฌ
2.
์์ฒญํ url์ ๋ง๋ย controllerย ๊ฒ์ํ์ฌย Handler Mapping์ ์ ๋ฌ
3.
HandlerMapping์์ ํด๋นย controller์ ์ฒ๋ฆฌ ์์ฒญ
4.
controller์์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผย Handler Adapter์์ ModelAndView ๊ฐ์ฒด๋ก ๋ณํํ์ฌย Dispatcher Servlet์ ์ ๋ฌ
5.
Dispatcher Servlet์์ ์ ๋ฌ๋ฐ์ย ModelAndView ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ๋งคํ๋๋ View๋ฅผ ๊ฒ์
6.
viewResolver์์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผย view์ ์ ๋ฌ
7.
์ฒ๋ฆฌ๊ฒฐ๊ณผ๊ฐ ํฌํจ๋ย view๋ฅผย Dispatcher Servlet์ ์ ๋ฌ
8.
Dispatcher Servlet์์ ์ต์ข
์๋ต ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํ
Dispatcher Servlet์ ๋์ ์๋ฆฌ
โข
์ฐ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ผ๋ก servlet์ด ํธ์ถ๋๋ฉด ์๋์ ๊ฐ์ดย doService()ย ๋ฉ์๋๊ฐ ํธ์ถ๋จ
โข
doService()์ ์ฝ๋๋ ๋งจ ์๋์์ย doDispatch()ย ๋ฉ์๋๊ฐ ํธ์ถ๋จ
โ ์ด์ ์ค์ ๋ก dispatch๋ฅผ ์คํํ๋ ๊ณผ์ ์ด ์งํ๋จ
1. ํธ๋ค๋ฌ ์กฐํ, ํธ๋ค๋ฌ ์ด๋ํฐ ์กฐํ
โข
doDispatch()์์๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ํด๋นํ๋ย ํธ๋ค๋ฌ๋ฅผ ์กฐํํ๊ณ (getHandler()),ํด๋น ํธ๋ค๋ฌ๋ฅผ ๋ฐ๊ธฐ ์ํ ์ด๋ํฐ๋ฅผ ์กฐํ(getHandlerAdapter())
โข
์ ๊ณผ์ ์์ 2, 3, 4 ๋จ๊ณ๋ฅผ ์งํํ๊ธฐ ์ํ ์ค๋น
2. ์์์ ์ฐพ์ ํธ๋ค๋ฌ ์ด๋ํฐ์ย handle()ย ๋ฉ์๋๋ฅผ ํธ์ถ
โข
์ด๋ฅผ ํตํดย ModelAndView๋ฅผ ๋ฐํ
โข
๊ทธ๋ฆฌ๊ณ ์๋์์ย processDispatchResult()ย ๋ฉ์๋๋ฅผ ํธ์ถ
โข
2, 3, 4๋ฒ ๋จ๊ณ ์คํ
3. ๋ทฐ ๋ ๋๋ง ํธ์ถ
โข
processDispatchResult()ย ๋ฉ์๋๋ ์์์ย render()ย ๋ฉ์๋๋ฅผ ๋ ๋ค์ ํธ์ถ
โข
5, 6, 7, 8 ๋จ๊ณ๋ฅผ ์ํ ์ค๋น
4. ๋ทฐ ๋ ๋๋ง
โข
render()ย ๋ฉ์๋ ์์์๋ ๋ทฐ ๋ฆฌ์กธ๋ฒ(viewResolver)๋ฅผ ํตํด view๋ฅผ ์ฐพ๊ณ , ํด๋น view๋ฅผ ๋ฐํ๋ฐ์
โข
๋ง์ง๋ง์ผ๋ก ๋ทฐ๋ฅผ ์ค์ ๋ก ๋ ๋๋ง โ ์ ๋ฌ
โข
5, 6, 7, 8 ๋จ๊ณ ์คํ