Redirect์ Forward
Redirect์ Forward
Redirect
- ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ํน์ URL๋ก ์ด๋์ ์์ฒญํ๋ ๊ฒ
- ์ฒ์์ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ์์ฒญ์ ๋ํ ์๋ต ์ฝ๋ 302์ ํค๋ ๋ด Location ๊ฐ์ URL์ ๋ณด๋
- HttpServletResponse์ sendRedirect() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ฆฌ๋ค์ด๋ ํธํจ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ์ํด ์๋ก์ด URL์ ์์ฒญํ๋ ๊ฒ์ด๋ฏ๋ก, Request Scope์ ์ํ ์ ๋ณด๊ฐ ์ ์ง๋์ง ์๋๋ค.
- ์๋ก์ด URL์ ์์ฒญํ๋ ๊ฒ์ด๋ฏ๋ก, ์ฃผ์์ฐฝ์ URL์ด ๋ณํ๋ค.
- ๊ฐ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ์๋์ด๋ Redirect๋ก ์ด๋ํ ์ ์๋ค.
Redirct์ ๊ตฌํ
response.sendRedirect("Redirect ํ ํ์ด์ง");
Servlet์์ , service(), doGet(), doPost() ๋ฑ์ ์ธ์๋ก ๋ค์ด๊ฐ ์๋ HttpServletResponse
์ sendRedirct() ๋ฉ์๋๋ฅผ ํตํด ์ด๋ํ๋ค.
JSP์์ ๋ด์ฅ ๊ฐ์ฒด๋ก HttpServletResponse๊ฐ ๋ค์ด์์ผ๋ฏ๋ก, response.sendRedirct()๋ก ์ด๋ํ๋ค.
Forwarding
- ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค๊ฐ, ๋ค๋ฅธ ์๋ธ๋ฆฟ์ด๋ JSP์๊ฒ ์ถ๊ฐ์ ์ธ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด ์์ฒญ์ ์์ํ๋ ๊ฒ
- Forwarding์ ์ฃผ์๋ '/'๋ก ์์ํ๋ค.
- Forwarding์ ๊ฐ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์์๋ง ์ด๋ ๊ฐ๋ฅํ๋ค.
- ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ๋ํ ์๋ต์ด ์ ๋ฌ๋์ง ์์ ์ํ์ด๋ฏ๋ก, Forwarding์ ํด๋ ์์ฒญ๊ณผ ์๋ต์ด ์ ์ง๋๋ค.
- ์์ฒญ๊ณผ ์๋ต์ด ์ ์ง๋๊ธฐ ๋๋ฌธ์ Request Scope์ ์ํ ์ ๋ณด๊ฐ ์ ์ง๋๋ค.
- Servlet์ผ๋ก ๋ก์ง์ ์ฒ๋ฆฌํ๊ณ , Servlet์ ๋ฐ์ดํฐ๋ฅผ JSP๋ก Forwarding ํ๋ ๋ฐฉ์์ผ๋ก Servlet๊ณผ JSP๋ฅผ ์ฐ๋ํ๋ค.
- Forwarding ๋ฐฉ์์ ์ฃผ์์ฐฝ์ URL์ด ๋ณํ์ง ์๋๋ค.
- ํด๋ผ์ด์ธํธ ์ ์ฅ์์ ์์ฒญ์ ๋ํ ์ ๋ณด๋ง ๋ฐ์ผ๋ฏ๋ก, ์ด๋ค ์๋ธ๋ฆฟ๋ค์ด Forwarding์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํ๋์ง ์ ์ ์๋ค.
Forwarding์ ๊ตฌํ
String data = "๋ณด๋ด๊ณ ์ถ์ ์๋ฃ";
request.setAttribute("dataName", data);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/path");
requestDispatcher.forward(request, response);
๋ณด๋ด๊ณ ์ถ์ ์๋ฃ๋ฅผ String data
๋ผ๊ณ ํ ๋, ์ฐ์ request์ setAttribute
๋ก ์ํ๋ ๋ฐ์ดํฐ์ ์ด๋ฆ๊ณผ ๋ฐ์ดํฐ ๊ฐ์ HttpServletRequest์ ์ ์ฅํด ์ค๋ค. ์ด๋, data๋ Stringํ์ด ์๋ Objectํ์ผ๋ก ์ ์ฅ๋๋ค.
RequestDispatcher๋ฅผ getRequestDispatcher๋ก ํธ์ถํ๋๋ฐ, ์ด๋ Forwarding์ ์ํ๋ ์ฃผ์๋ก ์จ์ฃผ์ด์ผ ํ๊ณ , '/'๋ก ์์ํ์ฌ์ํ๋ค.
๋ง์ง๋ง์ผ๋ก requestDispatcher์ forward() ๋ฉ์๋๋ฅผ ํตํด request์ response ๊ฐ์ฒด๊ฐ /path๋ก ์ ๋ฌ๋๋ค.
String data = (String)request.getAttribute("dataName");
ํธ์ถ ๋ฐ์ Servlet์์ request, response ๊ฐ์ฒด๊ฐ Forwarding์ ํตํด ์ ์ง๋์ด ์์ผ๋ฏ๋ก, request์ getAttribute()
๋ก ๊ฐ์ ๋ฐ์ ์ ์๋ค.
์ด๋์ ์๋ฃ๋ Objectํ์ด๋ฏ๋ก, ์ํ๋ ์๋ฃํ์ผ๋ก ํ ๋ณํ์ ํด์ฃผ์ด์ผ ํ๋ค.