1. ์๋ฆฌ
(1) redirect
a. ํด๋ผ์ด์ธํธ๊ฐ ํน์ ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋.
b. ๊ทผ๋ฐ ์๋ฒ๊ฐ ๋ฐ์๋ณด๋ ํด๋น ์ผ์ ํด๋น ์ฃผ์์์ ์ฒ๋ฆฌํ ์ ์๋ ์ผ์.
c. ๊ทธ๋์ ์๋ฒ๋ ์๋ต ๋ฉ์ธ์ง Header์๋ค๊ฐ ์ํ์ฝ๋ 300(redirect ์์ฒญ)๊ณผ ํจ๊ป ์ด๋๋ก ๊ฐ์ผ ์ด ์ผ์ ์ฒ๋ฆฌํ ์ ์๋์ง ์ฃผ์(location)๋ฅผ ๊ฐ์ด ์จ์ ๋ค์ ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ณด๋ธ๋ค.
d. ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก ํด๋น ์ฃผ์๋ก ์ฌ์์ฒญ์ ํ๋ค.
(๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์์ฒญ ์ ์๋จ์ URL์ด ์ฌ์์ฒญ๋ ์ฃผ์๋ก ๋ฐ๋์ด์ ํด๋ผ์ด์ธํธ๋ ์ฌ์์ฒญ ํ๋ ์ค ์ ์ ์์.)
e. ์ฌ๋ฐ๋ฅธ ์ฃผ์๊ฐ ์๋ตํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ธ๋ผ์ฐ์ ์ ๋์์ง๋ค.
(์ด ๋ ์ด ์๋์์ฒญ์ ์ค๋ก์ง GET ์์ฒญ๋ฐ์ ์๋๋ค.
๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ก๊ทธ์ธ ์ ๋ณด ์ณ์ ๋ณด๋๋คํ๋๋ผ๋ redirect ๋๋ฉด ์ฌ๋ฐ๋ฅธ ๋ก๊ทธ์ธ ํ์ด์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋ณด์ฌ์ง ๋ฟ์ด๋ค.
ํด๋ผ์ด์ธํธ๋ ํด๋น ๋ด์ฉ์ ๋ค์ ์จ์ผ ํ๋ค.)
redirect๋ฅผ ์ค์ํ ์๋ก ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋ด๊ฐ ์นด๋์ฌ์ 1๋ ์น ๊ฒฐ์ ๋ด์ญ์ ์์ฒญํ ๋ ค๊ณ ์ ํํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ด์ฉ์ ๋งํ๋ค.
๊ทผ๋ฐ ๋ด์ ์ ํ ํ๊ณ ํ๊ณ ๊ฐ ๊ณณ์ด ์๊ณ ๋ณด๋ ํ๋์ด๊ณผ๋ฅผ ์๋ ค์ฃผ๋ ๋ถ์์๋ค!
๊ทธ๋์ ํด๋น ๋ถ์ ์ง์์ด "~~์ฌ๊ธฐ๋ก ์ ํํด๋ณด์ธ์." ์ ํ๋ฒํธ ์ฃผ๊ณ ๋์๋ค. (์ฐ๋ฆฌ ํ๊ต ํ์ ํน)
๊ทธ๋์ ๋ด๊ฐ ๊ทธ ๋ฒํธ๋ก ์ง์ ๋ค์ ์ ํํ๋ค. (์ด ์ญํ ์ ์น์์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋์ ํด์ค๋ค.)
๋๋ ๊ฐ์ ๋ด์ฉ์ ๋ค์ ํ๋ฒ ๋ฌธ์ ํด์ผํ๋ค.
(2) Forward
a. ํด๋ผ์ด์ธํธ๊ฐ ํน์ ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋๋ค.
b. ๊ทผ๋ฐ ์๋ฒ๊ฐ ๋ณด๋ ํด๋น ๋ด์ฉ์ ๊ทธ ์ฃผ์์์ ๋ค๋ฃฐ ์ ์๋ ๋ด์ฉ์ด ์๋์๋ค. ๊ทธ๋์ ์ด๋ฒ์ ์๋ฒ๊ฐ ์ง์ ํด๋น ๋ด์ฉ์ ๋ค๋ฃฐ ์ ์๋ ์ฃผ์๋ก ํด๋น ์์ฒญ์ ๋ณด๋ด์คฌ๋ค. (์ด ๋ ์๋ฒ๋ ์ถ๊ฐ์ฌํญ์ ์์ฒญ๊ณผ ํจ๊ป ์ค์ด ๋ณด๋ผ ์ ์๋ค.)
c. ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ์ฃผ์์์ ๋ด์ฉ ์ฒ๋ฆฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๋์ด๋ค.
( ์ ์์ฒญ์ด GET์ด๋ฉด GET, POST๋ฉด POST ๊ทธ๋๋ก ์ฌ์์ฒญ์ด ๋์ด ์๋ตํ๋ค๋ ์ ์ Redirect์ ๋ค๋ฅด๋ค.)
** ์์ฒญ ๋ณด๋ด์ ์๋ต์ด ์ค๊ธฐ๊น์ง ํด๋ผ์ด์ธํธ๋ ํด๋น ๋ด์ฉ์ด ๋ค๋ฅธ ์ฃผ์๋ก ๋์ด๊ฐ์ ์ฒ๋ฆฌ๋ ์ค ๋ชจ๋ฅธ๋ค.
ํด๋น ๊ณผ์ ๋ค์ ์ ๋ถ ์๋ฒ ๋ด์์ ์ด๋ฃจ์ด์ก๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ๋ธ๋ผ์ฐ์ ์ ๋์์ง URL์ ์์ฒญํ ๊ทธ๋๋ก ์ ํ์๋ค.
์ค์ํ ์๋ฅผ ๋ค์ด ์ค๋ช ํ๋ฉด,
์ด๋ฒ์ ์นด๋์ฌ์ ์นด๋ ๋ฐ๊ธ ์ ์ฒญ์ ์ํด ์ ํ ํ๋ค. ๊ทผ๋ฐ ์ด๋ฒ์๋ ํ๋์ด๊ณผ ๋ถ์์ ์ ํ๋ฅผ ๊ฑธ์ด๋ฒ๋ ธ๋ค.
๋๋ํ ์ง์์ด ์๊ธฐ๊ฐ ์ง์ ํ๋์ด๊ณผ ๋ถ์์ ์ ํํด์ ๊ณ ๊ฐ ์ ๋ณด ๋๊ฒจ์ฃผ๊ณ ์ผ์ฒ๋ฆฌ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ณ ๊ฐ์๊ฒ ๋งํด์คฌ๋ค.
๊ณ ๊ฐ์ ๊ทธ ์ผ์ด ๋ด ๋ถ์์์ ์ฒ๋ฆฌํ ์ค ๋ชจ๋ฅธ๋ค. (ํ์ฌ์์ ์์์ ํ์ผ๋)
์ฌ๊ธฐ์๋ MVC์ ์๋ฆฌ๊ฐ ์๋ํ๋ค. ์ค์ํ ์์์๋ ํ๋์ด๊ณผ ์ง์์ด ์ปจํธ๋กค๋ฌ์ ์ญํ ์ด๋ค. ๋ด๊ฐ ์ฒ๋ฆฌ ๋ชปํ๋ ์์ฒญ์ธ ๊ฑธ ์๊ณ ๊ฐ๋ฅํ ๋ถ์๋ก ์ ํํ๋ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ์ ๊ฐ์ ๋์ด๊ฐ ์์ฒญ์ด ๋ฐ๋ก ๋ชจ๋ธ์ด๋ค. ๋ ์ฌ์ด์ ๋งค๊ฐ์ฒด ์ญํ ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ง์ง ์ผ์ ์ฒ๋ฆฌํ ๋ถ์๊ฐ view ์ด๋ค.
๋๊ฐ์ด ์์ฒญ์ forwardํ jsp๊ฐ controller, ์ด๋ ๋์ด๊ฐ๋ request ์ ์ฅ์๊ฐ model, ์์ฒญ์ ์ค์ ์ฒ๋ฆฌํด ๋ธ๋ผ์ฐ์ ์ ๋์ด jsp๊ฐ view์ ์ญํ ์ด๋ค.
2. Spring์์ redirect, forward ๋์๊ฐ๋ ๊ณผ์
์์๋ ๋ ๋ช ๋ น์ด๊ฐ ๋์๊ฐ๋ ์๋ฆฌ๋ฅผ ์ค๋ช ํ๋ค. ์ด์ Spring์์ ํด๋น ์๋ฆฌ๋ค์ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์ค๋ช ํ๊ฒ ๋ค.
(1) redirect view
a. ํด๋ผ์ด์ธํธ๊ฐ ์์ ์ ํ์๊ฐ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด /register/save๋ผ๋ ์ฃผ์๋ก POST ์์ฒญ์ ๋ณด๋๋ค.
b. DispatcherServlet์์ ํด๋น ์์ฒญ์ ๋ฐ์์ ๊ทธ๊ฑธ ์ฒ๋ฆฌํ ์ ์๋ ์ปจํธ๋กค๋ฌ์ ๋งคํ๋ ๋งค์๋๋ก ์์ฒญ์ ๋ณด๋๋ค.
c. ์ปจํธ๋กค๋ฌ๊ฐ ๋ฐ์๋ณด๋, ํ์๊ฐ์ ๊ธฐ์ ์ ์๋ชป๋ ๋ฐฉ์์ผ๋ก ํ๋ค. ๊ทธ๋์ DispatcherServlet์๊ฒ redirect๋ฅผ ๋ฐํํ๋ค.
d. DispatcherServlet์ด redirect ๋ผ๋ ๋ฐํ ๊ฐ์ ๋ฐ์ผ๋ฉด, Controller๊ฐ ๋ฐํ๊ณผ ํจ๊ป ๋ณด๋ธ ์ ๋ณด๋ค์ด ์ ์ฅ๋ Model์
RedirectView์๊ฒ ๋ณด๋ธ๋ค. (๋ฐํ๊ณผ ํจ๊ป ๋ณด๋ธ ์ ๋ณด: ์์์ ๋ญ๊ฐ ์๋ชป ๋์๋์ง ์๋ ค์ฃผ๋ String ๋ณ์ msg)
e. RedirectView๋ ๋ชจ๋ธ์ ํ ๋๋ก Redirect ํด๋ผ๋ HTTP ์๋ต ๋ฉ์ธ์ง๋ฅผ ๋ง๋ค์ด ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ณด๋ธ๋ค.
(์ํ์ฝ๋: 300, location: ์ง์ง ๊ฐ์ผํ ์ฃผ์)
f. ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ต๋ฉ์ธ์ง์ ์ ํ ์ฃผ์๋ก ๋ค์ ์ฌ์์ฒญ์ ๋ณด๋ธ๋ค.
(2) forward
a. forward ๋ค์ด๊ฐ๊ธฐ์ , Spring์ MVC ๊ณผ์ ์ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์์์ผ ํ๋ค.
์ฐ๋ฆฌ๋ ๋๋ต์ ์ผ๋ก MVC ๋ชจ๋ธ์ด ์ด๋ป๊ฒ ๋์๊ฐ๋์ง๋ฅผ ์๋ค. ํ์ง๋ง DispatcherServlet๊ณผ Controller, View ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๋งค๊ฐ์ฒด๋ค์ด ์ฌ๋ฟ ์๋ค. ์ผ๋จ ๊ทธ๊ฑธ ์ดํด๋ด์ผ forward๋ฅผ ์ ์ดํดํ ์ ์๋ค.
๋ฐ์ ์ ์์ ์ธ ์์ฒญ์ผ๋ก ์ ์์ ์ธ ์๋ต๊น์ง์ ๊ณผ์ ์ ๋ํ๋๋ค.
ใฑ. /ch/register/add ์ฃผ์๋ก ์์ฒญ์ด ์๊ณ , DispatcherServlet์ด ํด๋น ์์ฒญ์ ์ฌ๋ฐ๋ฅธ ์ปจํธ๋กค๋ฌ์๊ฒ ์ ๋ฌํจ.
ใด. ์ปจํธ๋กค๋ฌ๊ฐ ์ผ์ฒ๋ฆฌ ๋๋. ๊ทธ๋ฆฌ๊ณ "registerForm" ์ ๋ฐํ. (์ด ์ด๋ฆ์ view๋ก ๊ฐ๋ผ.)
ํ์ง๋ง view ์ด๋ฆ๋ง ์๋ค๊ณ ํด์ ๊ณผ์ฐ DispatcherServlet์ด ํด๋น jsp๋ฅผ ์ฐพ์ ์ ์์๊น? NO!
๊ฒฝ๋ก๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์๋๋ค! ์ฐพ์ผ๋ ค๋ฉด ๊ฒฝ๋ก๊ฐ ๋ถ์ ์ง์ง ์ด๋ฆ์ด ํ์ ํ๋ค!
ใท. DispatcherServlet์ด InternalResourceViewResolver๋ผ๋ ๋ ์์๊ฒ
Controller๋ก ๋ถํฐ ๋ฐ์ ๋ฐํ ๊ฐ "registerForm" ์ ๋ณด๋.
ใน. InternalResourceViewResolver๊ฐ ํด๋น ์ด๋ฆ์ ๊ฒฝ๋ก๊ฐ ๋ถ์ ์ง์ง ์ด๋ฆ์ผ๋ก ๋ณํํด DispatcherServlet์๊ฒ ๋ฐํํด์ค.
(registerForm > /WEB-INF/views/registerForm.jsp)
ใ . DistpatcherServlet์ ํด๋น ์ง์ง ์ด๋ฆ์ JSTLview์๊ฒ ์ ๋ฌ.
ใ . JSTL view๋ ํ์๊ธฐ ๊ฐ์ ๊ฐ๋ . ์ด ๋ ์์ด registerForm.jsp๋ฅผ ์ฐพ์์ ์ฐ๋ค.
ใ . registerForm.jsp๊ฐ ๋ฐ์ Model์ ํ ๋๋ก ์๋ต ๋ง๋ค์ด์ ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ณด๋.
b.Spring์์ forward๊ฐ ์ผ์ด๋๋ ๊ณผ์ (InternalResourceView๋ฅผ ์ด์ฉ)
ใฑ. ํด๋ผ์ด์ธํธ๊ฐ ํน์ ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋.
ใด. DispatcherServlet์ด ํด๋น ์ฃผ์์ ๋ง๋ ์ปจํธ๋กค๋ฌ์๊ฒ ์์ฒญ์ ๋ณด๋.
ใท. ์ปจํธ๋กค๋ฌ๊ฐ ๋ฐ์๋ณด๋ ์ง๊ฐ ํ ์ ์๋ ์ผ์ด ์๋์์! ๊ทธ๋์ B๋ผ๋ ์ฃผ์๋ก fowarding ํ์ธ์ ๋ผ๊ณ ๋ฐํ
(๋ช ๋ น์ด: foward:/register/add)
ใน. ๋ฐํ ๋ฐ์ DispatcherServlet์ ์ง๊ฐ ๋ฐํ ๋ฐ์ ๋ด์ฉ์ InternalResourceView์๊ฒ ๋ณด๋.
ใ . InternalResourceView๋ ๋ฐํ ๋ฐ์ ๋ด์ฉ์ ๋ณด๊ณ "์ ์ด ์ฃผ์๋ B๋ ์ปจํธ๋กค๋ฌ์ ๋งค์๋์ ๋งคํ๋์ด์์ต๋๋ค."
๋ผ๊ณ DispatcherServlet์๊ฒ ์๋ ค์ค.
ใ . DispatcherServlet์ B ์ปจํธ๋กค๋ฌ์๊ฒ ๋ค์ ์์ฒญ์ ๋ณด๋ด๊ณ ๊ทธ ์ดํ ๊ณผ์ ์ ์ ์์ ์ผ๋ก ํ๋ฌ๊ฐ.
** Forward ์ฐ๋ ๋ฐฉ๋ฒ
Forward๋ ๊ทธ๋ฅ ์๋ชป๋ ์์ฒญ์ ์ํ ์ฌ์ฒ๋ฆฌ ์ฉ๋๋ก๋ง ์ฐ์ด์ง ์๋๋ค.
if ๋ฌธ๊ณผ ์ฐ๊ฒฐํด ๊ฒฝ์ฐ์ ์๋ง๋ค ๋ค๋ฅธ ์ปจํธ๋กค๋ฌ๋ก ๊ฐ ์ ์๊ฒ๋ ํ๋ ์ฉ๋๋ก๋ ์ฐ์ธ๋ค.
์์ ์์ ๋ ์ํ์ 1๋ ์น ์ ์ถ๊ธ ๋ด์ญ์ ์์ฒญํ์ ๋์ ์์ ์ด๋ค.
์ด๋ ํด๋ผ์ด์ธํธ๊ฐ ์ํ๋ ์์์ ๋๋ฅผ ์ ์๋ค๊ณ ๊ฐ์ ํ์ (ex- pdf๋ก ๋ฐ๊ธฐ, csv๋ก ๋ฐ๊ธฐ excel๋ก ๋ฐ๊ธฐ)
ํด๋น ์์ฒญ์ ๋ฐ์ ์ปจํธ๋กค๋ฌ๊ฐ ํ์์ ์ ์ถ๊ธ ๋ด์ญ์ ๋ชจ๋ ๋ค์ดํ ํ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ผ pdf๋ก ์์ฒญํ์ผ๋ฉด, pdf๋ก ์ถ๋ ฅํ๋ ์ปจํธ๋กค๋ฌ๋ก, csv๋ฉด csv๋ก ์ถ๋ ฅํ๋ ์ปจํธ๋กค๋ฌ๋ก forwarding ํ๋ค.
3. ์ค์ค๋ก ํด๋ณด๊ธฐ
(1) redirect
@PostMapping("/register/save") // 4.3๋ถํฐ
public String save(User user, Model m) throws Exception {
// 1. ์ ํจ์ฑ ๊ฒ์ฌ, ์๋ชป ๋์์ผ๋ฉด redirect
if(!isValid(user)) {
String msg = URLEncoder.encode("id๋ฅผ ์๋ชป ์
๋ ฅํ์
จ์ต๋๋ค.", "utf-8");
m.addAttribute("msg",msg);
return "redirect:/register/add";
// return "redirect:/register/add?msg="+msg; //URL ์ฌ์์ฑ(reWriting)
}
// 2. DB์ ์ ๊ทํ์ ์ ๋ณด๋ฅผ ์ ์ฅ
return "registerinfo";
}
// ์ผ๋จ ๋ฌด์กฐ๊ฑด id ์๋ชป ์น๊ฑธ๋ก ๋ฑ๊ฒ ๋ง๋ค์์.
private boolean isValid(User user) {
return false;
}
}
/register/save๋ก ๋ณด๋๊ณ , ์์ฒญ์ด ์๋ชป ๋์ด์ /register/add๋ก redirecting์ด ์ผ์ด๋ฌ๋ค. ์์์ ๋ณด๋ฉด, URL์ด ๋ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋
๋ธ๋ผ์ฐ์ ๊ฐ ์ด์ ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ ๋ฐ๊ณ ํด๋น ๋ก์ผ์ด์ ์ผ๋ก ์๋ ์ฌ์์ฒญ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
(2) forward
@PostMapping("/register/save") // 4.3๋ถํฐ
public String save(User user, Model m) throws Exception {
// 1. ์ ํจ์ฑ ๊ฒ์ฌ, ์๋ชป ๋์์ผ๋ฉด redirect
if(!isValid(user)) {
String msg = URLEncoder.encode("id๋ฅผ ์๋ชป ์
๋ ฅํ์
จ์ต๋๋ค.", "utf-8");
m.addAttribute("msg",msg);
return "forward:/register/add";
// return "redirect:/register/add?msg="+msg; //URL ์ฌ์์ฑ(reWriting)
}
// 2. DB์ ์ ๊ทํ์ ์ ๋ณด๋ฅผ ์ ์ฅ
return "registerinfo";
}
// ์ผ๋จ ๋ฌด์กฐ๊ฑด id ์๋ชป ์น๊ฑธ๋ก ๋ฑ๊ฒ ๋ง๋ค์์.
private boolean isValid(User user) {
return false;
}
}
์ด๋ฒ์ ๋ช ๋ น์ forward๋ก ๋ฐ๊พธ๊ณ ์คํ
์๋ฌ ๋ธ
** forward์ ์๋ฌ ๋๋ ์ , ์ด์
์ฐ๋ฆฌ๊ฐ ์ ๋ฒ์ web-app์ ์ค์ ์ ๊ด๋ฆฌํ๋ servlet-context์์ @GetMapping ๋์ ์
<view-controller path="/register/add" view-name="registerForm"/>
์ ๋ฃ์๋ค. ์ด์ ๋ /register/add์ ๋งคํ๋ ๋งค์๋๊ฐ ํ๋ ์ผ์ด registerForm์ด๋ผ๋ view๋ฅผ ๋์ฐ๋ ๊ฑฐ ๋ฐ์ ์์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์ค์ ์ ํด๋น ๊ฒฝ๋ก๋ก ์์ฒญ ๋ค์ด์ค๋ฉด ์๋์ผ๋ก registerForm์ผ๋ก ๊ฐ๋ view-controller๋ผ๋ ์ค์ ์ ํด์ ์ปจํธ๋กค๋ฌ์ ๋งค์๋ ํ์ดํํ๋ ์๊ณ ๋ฅผ ๋์๋ค.
ํ์ง๋ง ์์์ ์ค๋ช ํ๋ค์ํผ ,forward๋ get ์์ฒญ์ get์ผ๋ก ์ฌ์์ฒญ, post๋ post ๊ทธ๋๋ก ์ฌ์์ฒญ ํ๋ค.
ํด๋น ํ์๊ฐ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ๊ธฐ์ ํ ์ ๋ณด๋ฅผ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ฐ๋ ํ์์ด๋ Post์ ํด๋นํ๋ค. ๊ทผ๋ฐ ์์ ๊ฐ์ด
view-controller ์ค์ ์ ํด๋์ผ๋ฉด, ํด๋น ์ฝ๋๋ form์ ๋์ฐ๋ ๊ฒ๋ฐ์ ๋ชปํ๋ค. get ์์ฒญ ๋ฐ์ ์ํ์ ๋ชปํ๋ ๊ฒ์ด๋ค.
Post ์์ฒญ์ ์ํํด์ผ ํ๋๋ฐ ํด๋น ์ปจํธ๋กค๋ฌ๊ฐ get ์์ฒญ๋ฐ์ ๋ชปํ๋ ์ํฉ์ด ๋ฐ์ํด์ ์๋ฌ๊ฐ ๋ ๊ฒ์ด๋ค.
servlet-context์์ ํด๋น ์ฝ๋๋ฅผ ์ฃผ์์ฒ๋ฆฌํ๊ณ ์๋ ์ปจํธ๋กค๋ฌ์ /register/add์ ๋งคํ๋ ๋งค์๋๋ฅผ post๋ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ด๋ฆฌ์.
// GET POST ๋ ๋ค ๊ฐ๋ฅํ๊ฒ ๋งคํ
@RequestMapping(value="/register/add", method={RequestMethod.GET, RequestMethod.POST})
public String register(){
return "registerForm";
}
๋ค์ ์์ฒญ์ ๋ณด๋ด๋ณด๋ฉด
๋ค์ register/add ํ๋ฉด์ผ๋ก ๋์์จ ๊ฒ์ ๋ณผ ์ ์๋ค. URL์ ๋ฐ๋์ง ์์๋ค. ์๋ํ๋ฉด ์๋ฒ๋ด์์ ์ฌ์์ฒญ ๋ค ํด๊ฒฐํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์ํ์ฝ๋๋ 200์ผ๋ก ์ ์์ด๋ค.