๋ฐ์ํ
Sevlet Container, Servlet์ ๋ํด ์์๋ณด์๊ณ ์ด๋ฒ์ Servlet์ ๋ํ๊ฒฉ์ ๋งก๊ณ ์๋ Dispatcher-Servlet์ ๋ํด ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
# Dispatcher-Servlet์ ์ ์
์คํ๋ง์์ ์ ์ํ ๊ฐ๋ ์ ์๋์ ๊ฐ์ต๋๋ค.
Servlet Container์์ HTTPํ๋กํ ์ฝ์ ํตํด ๋ค์ด์ค๋ ๋ชจ๋ ์์ฒญ์ ํ๋ ์ ํ ์ด์ ๊ณ์ธต์ ์ ์ผ์์ ๋ฌ์ ์ค์์ง์ค์์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ(Front Controller)
์ข ๋ ์ฝ๊ฒ ์ค๋ช ํ์๋ฉด, ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด์ค๋ฉด ์๋ธ๋ฆฟ ์ปจํ ์ด๋๊ฐ ์์ฒญ์ ๋ฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ ์ผ ์์์ ์๋ฒ๋ก ๋ค์ด์ค๋ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๊ฐ ์๋๋ฐ ์ด๋ฅผ Dipatcher Servlet์ด๋ผ๊ณ ํฉ๋๋ค.
# Dispatcher-Servlet์ ํ๋ฆ
- ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )๊ฐ DispatcherServlet์ URL๋ก ์ ๊ทผํ์ฌ ํด๋น ์ ๋ณด๋ฅผ ์์ฒญํฉ๋๋ค.
- HandlerMapping์์ ํด๋น ์์ฒญ์ ๋ํด ๋งคํ๋ ์ปจํธ๋กค๋ฌ๊ฐ ์๋์ง ์์ฒญํฉ๋๋ค.
- ๋งคํ๋ ์ปจํธ๋กค๋ฌ์ ๋ํด ์ฒ๋ฆฌ๋ฅผ ์์ฒญํฉ๋๋ค.(๊ณตํต์ ์ธ ์์ ์ ๋ํ ์ฒ๋ฆฌ๋ Dispatcher๊ฐ ๋ฏธ๋ฆฌ ํด๋์๊ณ , ์ดํ ํด๋น Controller๊ฐ ํด์ผํ๋ ์ฒ๋ฆฌ์ ๋ํด์๋ง ํฉ๋๋ค.)
- ์ปจํธ๋กค๋ฌ๊ฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ์ View ์ด๋ฆ์ ModelAndView์ ์ ์ฅํด์ DispatcherServlet์ผ๋ก ๋ฐํํฉ๋๋ค.(ModelAndView์๋ View ์ด๋ฆ์ด ๋ด๊ฒจ์ ธ ์๋ ๊ฒ์ด์ง View์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค.)
- DispatcherServlet์์๋ ์ปจํธ๋กค๋ฌ์์ ๋ณด๋ด์จ View ์ด๋ฆ์ ViewResolver๋ก ๋ณด๋ด ํด๋น View๋ฅผ ์์ฒญํฉ๋๋ค.
- ViewResolver๋ ์์ฒญํ View๋ฅผ ๋ณด๋ ๋๋ค.
- View์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ DispatcherServlet์ผ๋ก ๋ณด๋ ๋๋ค.
- DispatcherServlet์ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์๊ฒ ์ ๋ฌํฉ๋๋ค.
๊ด๋ จ๊ฒ์๊ธ
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ง๋ฌธ์ ์ธ์ ๋ ํ์ํฉ๋๋ค.
"๋ ๋ฐ๋์ ๋ฐฑ์๋ ์์ด ๋ ๊ฑฐ์ผ"
๋ฐ์ํ
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest] ์๋ฌ (0) | 2021.01.18 |
---|---|
[Js] ajax ํ์ผ ์ ๋ก๋ํ๊ธฐ (0) | 2021.01.18 |
[Spring] ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋? (0) | 2021.01.17 |
[Spring] ์คํ๋ง์์ ํ๊ฒฝ ๋ณ์ ์ฌ์ฉํ๊ธฐ (0) | 2021.01.14 |
[Spring] ์คํ๋ง servlet-context๋ก jsp ๊ฒฝ๋ก ์ค์ ํ๊ธฐ (0) | 2021.01.14 |