์น ์๋ฒ ๋ง๋ค๊ธฐ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ํจํด์ ๋ํด ํ์ตํ๊ณ ์์ฑํ ๊ธ์ ๋๋ค. ํ์ต๊ณผ์ ์์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์๋ชป๋ ๋ด์ฉ์ด ์์ ์ ์์ผ๋ฉฐ,
1. ์๋ธ๋ฆฟ๊ณผ jsp
์๋ธ๋ฆฟ์ ์ฌ์ฉํ๋ฉด ๋์ ์ผ๋ก html์ ์์ฑํ ์ ์๋๋ฐ์, ํ์ง๋ง ์๋ฐ์ฝ๋๋ก text/html์ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ๋ฉ์์ง body์ text/html๊ณผ ์ธ์ฝ๋ฉ ๋ฐฉ์(utf-8)๊ณผ ๊ฐ์ ์ ๋ณด๋ฅผ ์ง์ ๋ฃ์ด์ค์ผ ํฉ๋๋ค. ์ด๋ (์๋ฐ๋ก html์ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์) ๋ณต์กํ๊ณ ๋นํจ์จ์ ์ธ ๋ฐฉ์์ด๋ฉฐ requestParam( ) ๋ฉ์๋๋ ๋ฐํ ํ์ ์ด String์ด๊ธฐ ๋๋ฌธ์ ํ ๋ณํ ๋ํ ๊ฐ์ ๋ก ํด์ค์ผ ํ๋ ๋ฌธ์ ๋ ์์ต๋๋ค.
์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด jsp๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ์, ๋ทฐ๋ฅผ ์์ฑํ๋ ์์ ์ jsp๊ฐ ๊ฐ์ ธ๊ฐ๊ณ ๋์ ์ผ๋ก ๋ณ๊ฒฝ์ด ํ์ํ ๋ถ๋ถ์๋ง ์๋ฐ ์ฝ๋๋ฅผ ์ ์ฉํด์ ์๋ธ๋ฆฟ์ ๋ชฐ๋ฆฐ ๊ณผ๋ํ ์ฑ ์์ ๋ถ๋ฆฌํ์ต๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ ๋ทฐ์ java์ฝ๋, ๋ฐ์ดํฐ๋ฅผ ์กฐํ ๋ฑ ๋ค์ํ ์ฝ๋๊ฐ ๋ ธ์ถ๋๊ธฐ ๋๋ฌธ์ jsp๊ฐ ๋๋ฌด ๋ง์ ์ญํ ์ ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
2. MVCํจํด์ ๋ฑ์ฅ
์๋ธ๋ฆฟ์ ์ด์ฉํ๋ ๊ธฐ์กด ๋ฐฉ์์ ๋ถํธํจ์ผ๋ก ์ธํด MVC ํจํด์ด ๋ฑ์ฅํ๊ฒ ๋ฉ๋๋ค. ํ๋ก๊ทธ๋จ์์ ๋ณ๊ฒฝ ์ฃผ๊ธฐ๊ฐ ๋ค๋ฅผ ๋๋ ์ด๋ค์ ๋ถ๋ฆฌํด์ผ ํ๋๋ฐ์, ๋ฐ๋ผ์ ํ๋์ JSP๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ์ปจํธ๋กค๋ฌ/๋ทฐ๋ผ๋ ๊ฐ๊ฐ์ ์์ญ์ผ๋ก ์ญํ ์ ๋๋์์ผ๋ฉฐ ์ด๊ฒ์ด Controller/ModelAndView๊ฐ ๋ฉ๋๋ค.
๋ฟ๋ง ์๋๋ผ ๊ธฐ์กด์ ์ปจํธ๋กค๋ฌ(์๋ธ๋ฆฟ)์ ๋ฐ์ดํฐ์ ์ ๋ฌ๊ณผ ๋น์ฆ๋์ค ๋ก์ง์ ์ํ ๋ฑ ๋๋ฌด ๋ง์ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ๋น์ฆ๋์ค ๋ก์ง์ ์๋น์ค์ ์์ํ๊ฒ ๋ฉ๋๋ค. ์ฆ, ์๋ธ๋ฆฟ ์ปจํธ๋กค๋ฌ๊ฐ ์์ฒญ์ ๋ฐ๊ณ ๋น์ฆ๋์ค ๋ก์ง์ ์คํํ ํ Model์ ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ํธ๋ฆฌํ๊ฒ ์ถ๋ ฅํ๊ฒ ํด์ฃผ๋ ๊ฒ์ ๋๋ค.
๋น์ฆ๋์ค ๋ก์ง์ ์๋ธ๋ฆฟ์ด ์๋ ๋ค๋ฅธ๊ณณ์์ ์ฒ๋ฆฌํ๊ณ , jsp๋ ๋ชฉ์ ์ ๋ง๊ฒ html๋ก ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ์ผ์ ์ง์คํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ํ๋ฉด์ ๋ํ ์์ ์ด ๋ฐ์ํ๊ฒ ๋๋๋ผ๋ ์ด์ ๋ํ ๋ก์ง์ ๋ถ๋ฆฌํ ์ ์๊ฒ ๋๋ฉฐ, ๋ํ ๋ชจ๋ธ ๋๋ถ์ ๋ทฐ์์ ์ฒ๋ฆฌํ๋ ๋น์ฆ๋์ค ๋ก์ง์ ํธ์ถ์ ๋์ด๋ฒ๋ฆด ์ ์๊ฒ ๋ฉ๋๋ค. **๋ทฐ๋ xml, html ๋ฑ ๋ค์ํ ์ข ๋ฅ๊ฐ ์กด์ฌํฉ๋๋ค.
์๋ธ๋ฆฟ์ ํธ์ถํ๋ฉด forward๋ ์๋ฒ ๋ด๋ถ์์ ํธ์ถ์ด ์ผ์ด๋๊ฒ ๋๋ฉฐ ์ด๋ redirect๋ณด๋ค ์ฑ๋ฅ์ด ์ข์ต๋๋ค.
์ถ๊ฐ๋ก static ๊ฒฝ๋ก์ ํ์ผ์ ๋ฃ๊ฒ ๋๋ฉด ์ธ๋ถ์์๋ ์ด๋ฅผ ์์ ๋กญ๊ฒ ํธ์ถํ ์ ์์ง๋ง ์๋์ ๊ฐ์ด ํน์ ๊ฒฝ๋ก์ ํ์ผ์ ๋ฃ์ผ๋ฉด ๋ฐ๋์ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ฑฐ์ณ์ ์ด๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค. ** ์ด๋ WAS ์๋ฒ์ ๋ฃฐ์ธ๋ฐ์, ์ฐ๋ฆฌ๋์์๋ ์ ๋ณด์ด์ง๋ง url์ ํธ์ถํ๋ ์๊ฐ forward๊ฐ ์คํ๋ฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก redirect๋ณด๋ค ์ฑ๋ฅ์ด ์ข์ต๋๋ค.
๋ฆฌ๋ค์ด๋ ํธ๋ ์ค์ ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ )์ ์๋ต์ด ๋๊ฐ๋ค๊ฐ, ํด๋ผ์ด์ธํธ๊ฐ redirect ๊ฒฝ๋ก๋ก ๋ค์ ์์ฒญ์ ํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๊ฐ ์ธ์งํ ์ ์๊ณ , URL ๊ฒฝ๋ก๋ ์ค์ ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ๋ฐ๋ฉด์ ํฌ์๋๋ ์๋ฒ ๋ด๋ถ์์ ๋ฐ์ํ๋ ํธ์ถ์ด๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ๊ฐ ์ ํ ์ธ์งํ์ง ๋ชปํฉ๋๋ค.
3. MVC ํจํด์ ํ๊ณ
ํ์ง๋ง ์ฌ๊ธฐ์๋ ์ฌ์ ํ ๋จ์ ์ด ์กด์ฌํ๋๋ฐ์, ์ฐ์ ์ปจํธ๋กค๋ฌ์ ํฌ์๋ ๋ก์ง๊ณผ ๊ฒฝ๋ก์ ์ค๋ณต์ด ๋ง์ ๊ฒ์ ๋๋ค. ์ค๋ณต ๋ก์ง์ด ๋ง๋ค๋ ๊ฒ์ ๊ณตํต ์ฒ๋ฆฌ๊ฐ ์ด๋ ต๋ ๊ฒ์ธ๋ฐ์, ์ปจํธ๋กค๋ฌ์ ์๊ฐ ๋ง์์ง๊ณ ๊ธฐ๋ฅ์ด ๋ณต์กํด์ง ์๋ก ์ค๋ณต ๋ก์ง์ด ์ฆํ๊ฒ ๋ฉ๋๋ค. ๋ฌผ๋ก ๊ณตํต ๊ธฐ๋ฅ์ ๋ฉ์๋๋ก ๋ฝ์์ ํด๊ฒฐํ ์๋ ์์ง๋ง ์ปจํธ๋กค๋ฌ๊ฐ ํด๋น ํด๋์ค์ ์์กดํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ์ข์ ๋ฐฉ๋ฒ์ด ์๋๋๋ค. ** jsp๊ฐ ์๋ thymeleaf ๊ฐ์ ๋ค๋ฅธ ๋ทฐ๋ก ๋ณ๊ฒฝํ๋ค๋ฉด ์ ์ฒด ์ฝ๋๋ฅผ ๋ค ๋ณ๊ฒฝํด์ผ ํ๋ ๋ฌธ์ ์ ๋ ์์ต๋๋ค.
๋ฟ๋ง ์๋๋ผ HttpServletResponse๊ณผ ๊ฐ์ด ์ฌ์ฉํ์ง ์๋ ์ฝ๋๋ ์กด์ฌํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ปจํธ๋กค๋ฌ ํธ์ถ ์ ์ ๋จผ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๊ณ ํด๋น ๊ธฐ๋ฅ์ ๋ง๋ ์ปจํธ๋กค๋ฌ๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค. ์ฆ, ์ค๋ณต ๋ก์ง/๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ธ๋ฐ ์ด๋ ์คํ๋ง MVC์ ํต์ฌ๋ก์ง์ด๊ธฐ๋ ํฉ๋๋ค. ๋ค์ ๊ธ์์๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ์ ๋ค์ ๋ฒ์ ์ด ์ด๋ป๊ฒ ๊ณตํต ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
'๐ฅDEV > Java || Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ ๊ฒ์ฆํ๋ ์์น๋ ์ด๋๊ฐ ์ข์๊น? (0) | 2022.07.30 |
---|---|
@Component์ @Configuration์ ์ฐจ์ด (0) | 2022.07.24 |
@Embedded์ ๊ฐ ๊ฐ์ฒด (0) | 2022.07.17 |
private ์์ฑ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ธฐ (0) | 2022.07.17 |
@Embedded์ ๊ธฐ๋ณธ ์์ฑ์ (0) | 2022.07.14 |
๋๊ธ