2021. 1. 20. 21:07ใ๐ป ๊ฐ๋ฐ/Spring
DispatcherServlet ํด๋์ค์ ์ญํ
Spring MVC ๋ชจ๋ธ์ ๊ฒ์ํ๋ฉด ์์ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ณผ ์ ์๋๋ฐ, ๊ทธ๋ฆผ์์ ํ๋์ ๋ถ๋ถ์ด ์คํ๋ง์์ ์ ๊ณตํด์ฃผ๋ ๊ฒ๋ค์ด๊ณ ๊ฐ๋ฐ์๊ฐ ๋๋จธ์ง ๋ถ๋ถ๋ง ๊ตฌํํด์ฃผ๋ฉด ๋๋ค.
์คํ๋ง MVC ๋ชจ๋ธ์ MVC ๋ชจ๋ธ2์ ํด๋นํ๋ฉฐ DispatcherServlet๋ผ๋ ์๋ธ๋ฆฟ ํ๋๊ฐ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ค์ด์ค๋ ๋ชจ๋ ์์ฒญ์ ๋ฐ๋๋ค. DispatcherServlet๊ฐ ์๊ธฐ ์ ์๋ ์ฌ์ฉ์๊ฐ ํธ์ถํ๋ url์ ์ผ์ผ์ด ํด๋นํ๋ ๋ชจ๋ ์๋ธ๋ฆฟ๊ณผ ๋งคํ์ํค๋ ์์ ์ด ํ์ํ์ง๋ง, DispatcherServlet์ ์ฌ์ฉํ๋ฉด ํด๋น ์์ฒญ์ Handler Adapter๋ฅผ ํตํด ์๋ง์ ์ปจํธ๋กค๋ฌ๋ก ์์ํ๊ณ , ์ปจํธ๋กค๋ฌ๋ค์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ผ ๋ทฐ๋ฅผ ์ ํํด์ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ์์ ์ ํ๊ฒ๋๋ค.
Spring MVC๊ธฐ๋ฐ ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ตฌํํ๊ธฐ
Controller๋ฅผ ๋ฑ๋กํ๊ณ , ๋ธ๋ผ์ฐ์ ์์์ JSP๋ฅผ ์คํํด๋ณด๋ ๊ฐ๋จํ ์์ ์ด๋ค.
ํ๋ก์ ํธ๋ ๋๊ฐ์ง๋ฅผ ์์ฑํ๊ณ ์ฒซ๋ฒ์งธ๋ xml ์ฌ์ฉ, ๋๋ฒ์งธ๋ xml์์ด javaํ์ผ๋ง์ผ๋ก ์ค์ ํด์ ์คํ์์ผ๋ณธ๋ค.
[๋ฐฉ๋ฒ1] xml๋ก ์คํ๋ง ์ค์ ํ๊ธฐ
๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
1. spring MVC์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
๋จผ์ , Maven Project๋ฅผ ์์ฑํ๊ณ , pom.xml์์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์์ฑํด์ค๋ค.
ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ mvn repository ์ฌ์ดํธ์์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ถ๋ฌ์ค๋ฉด ๋๋ค.
2. ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ DispatcherServlet์ web.xml์ ์ค์
๋จผ์ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด๋ฅผ ๊ด๋ฆฌํ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ฃผ์ด์ผ ํ๋ค. contextClass์ value๊ฐ ๋ชจ๋ ์คํ๋ง ํ๋ ์์ํฌ์์ ์ ๊ณตํด์ฃผ๋ ๊ฐ์ฒด๋ค์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ด์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋์ํ๋ ์ด๋ค ๊ฐ์ฒด๋ค์ด๋ผ๋ ์ด name๊ณผ value์ ์ ๊ทผํด์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
๋ค์์ ๋ฆฌ์ค๋์ DispatcherServlet์ ์ ์ํ ๋ถ๋ถ์ด๋ค.
๋ชจ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ DispatcherServlet์ ํตํด ๋ฐ์๋ด๊ณ , servlet element ์์ DispatcherServlet๋ฅผ์ ์ํด์ฃผ๋ฉด๋๋ค. servlet-mapping์ ์๋ธ๋ฆฟ name์ ์ ์ํด์ฃผ๊ณ , ๊ทธ๋์ ์ด๋ฆ์ด servlet์์ ์ ์ํ servlet-name๊ณผ ์ผ์นํ๋๋ก ์์ฑํด์ฃผ๋ฉด ๋๋ค. url-pattern ์ผ๋ก ์ง์ ํ "/" ๋ค์ ๋ชจ๋ ์์ฒญ url๋ค์ด ์ค๊ฒ๋ ๊ฒ์ด๊ณ , ์์ฒญ๋๋ฉด servlet์์์๋ servlet-class๊ฐ ์คํ๋ ๊ฒ์ด๋ค. ์ด ์๋ธ๋ฆฟ ํด๋์ค ์ญ์ ์คํ๋ง ํ๋ ์์ํฌ์์ ์ ๊ณตํด์ฃผ๋ ํด๋์ค์ด๋ค.
3. ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ Controller ์์ฑ
hello()์ test()๊ฐ ์ฒ๋ฆฌํ ๋ฉ์๋์ด๊ณ ํธ์ถํ๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋งคํ ์ ๋ ธํ ์ด์ ์ ๋ค๋ฅด๊ฒ ์ง์ ํด์ค๋ค.
4. Spring Bean์ผ๋ก Controller ๋ฑ๋ก
resolver ๊ฐ์ฒด๋ค์ด jspํ์ผ์ ๋งคํํ๋๋ก ์ค์ ํด์ค ๋ชจ์ต์ด๋ค.
5. Browser ์์์ JSP ์คํ
[๋ฐฉ๋ฒ2] javaํ์ผ์ ์คํ๋ง ์ค์ ํ๊ธฐ
๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
1. web.xml ๋์ javaํด๋์ค์ ์คํ๋ง ์ค์
ํ๋ก์ ํธ ์์ฑ๊ณผ pom.xml์ค์ , ์ปจํธ๋กค๋ฌ ์์ฑ ๋ฐฉ๋ฒ์ ์์ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ๊ณ , web.xml์ ๋์ ํ javaํ์ผ์ ์์ฑํด์ฃผ๋ฉด ๋๋ค.
web.xml์ ์ฌ์ฉํ๋๋์ java ํด๋์ค๋ก ์ค์ ํ๋ฉด ์ด๋ค ์ฐจ์ด์ ์ด ์์๊น??
- ์คํ๋ง ์ค์ ํ์ผ์ ๋ฐ๋ก ๊ด๋ฆฌํ ํ์๊ฐ ์๋ค
- xml์ ์์ฑํ๋ ๊ฒ๋ณด๋ค ๋ช ๋ฃํ๋ค. ์ด๋ค ๊ฒ๋ค์ด ๋น์ผ๋ก ๋ง๋ค์ด์ง๋์ง ํ์ ํ๊ธฐ ์ฝ๋ค
- ์๋ฐ์ฝ๋๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ IDE ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค (์๋์์ฑ ๋ฑ)
2. ์ค๋ฒ๋ผ์ด๋ฉ์ผ๋ก ์ปจํธ๋กค๋ฌ ๋ฑ๋ก๋ ๊ฐ๋ฅํ๋ค
์ด์ ์ปจํธ๋กค๋ฌ๊ฐ jspํ์ผ์ ๋งคํํ๋๋ก ํด์ฃผ๋ฉด๋๋๋ฐ, ํด๋์ค๋ฅผ ํ๋ ์์ฑํด์ ์คํ๋ง์ prefix, suffix์ธ์๋ฅผ ๋ฐ์์ค๋๋ก ๋ก ๊ตฌํํ๋ค. [๋ฐฉ๋ฒ 1] ์์ ์์๋ ์ง์ bean์ ๋ฑ๋กํด์ resolver.setPrefix์ resolver.setSuffix๋ฅผ ์ฌ์ฉํ๋๋ฐ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ๋ ์์ผ๋ ์์๋์
3. Browser ์์์ JSP ์คํ
๋น์ฆ๋์ค ๋ก์ง์ ์ ์ธํ ๊ฐ๋จํ ์์ ๋ก Spring MVC ํ๋ฆ์ ๋ํด ์ดํดํด๋ณด์๋ค.
๋ค์์ Mybatis ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํด๋ณด๊ณ JDBC ํ๋ก๊ทธ๋จ๊ณผ ์ด๋ค ์ฐจ์ด์ ์ด ์๋์ง ๊ณต๋ถํด๋ณผ ์์ !
์ ์ฒด ์์ค์ฝ๋
https://github.com/jiyoung-dev/TIL/tree/master/Spring/MVCmodel
'๐ป ๊ฐ๋ฐ > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] MyBatis ์ฐ๋ ๋ฐ ์ค์ ๋ฐฉ๋ฒ (0) | 2021.01.21 |
---|---|
[Spring] MVC ๋ชจ๋ธ ๊ฐ๋ ์ ๋ฆฌ (0) | 2021.01.20 |