<๊ฐ์>
์์ฒญ์์ ์๋ต๊น์ง์ ๊ณผ์ ์์ ์๋ธ๋ฆฟ๊ณผ JSP๊ฐ ์ฌ์ฉํ๋ 4๊ฐ์ ์ ์ฅ์๊ฐ ์๋ค. ์ด ์ ์ฅ์๋ค์ Map์ ํํ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ๊ฐ ์ ๊ทผ ๋ฒ์์ ์์กด๊ธฐ๊ฐ์ด ์๋ก ๋ค๋ฅด๋ค. ์ด๋ฒ์๋ ์ด 4๊ฐ์ ์ ์ฅ์์ ๊ดํด์ ์์๋ณด๊ฒ ๋ค.
** ์ฐธ๊ณ : ์ ์ฅ์๊ฐ ํ์ํ ์ด์ **
HTTP ๋ ์ํ์ ๋ณด๋ฅผ ์ ์ฅํ์ง ์๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ ํด๋ผ์ด์ธํธ๊ฐ 2๋ฒ์ ์์ฒญ์ ๋ณด๋ธ๋ค๊ณ ํด๋ servlet์ ์ฒซ ๋ฒ์งธ ์์ฒญ๊ณผ ๋ ๋ฒ์งธ ์์ฒญ์ด ๊ฐ์ ์ฌ๋์๊ฒ์ ์๋์ง ์ ๋ฐฉ๋๊ฐ ์๋ค. ํ์ง๋ง ์ฒซ ๋ฒ์งธ ์์ฒญ์ด A ํด๋ผ์ด์ธํธ์ ๋ก๊ทธ์ธ์ด๊ณ , ๋ ๋ฒ์งธ ์์ฒญ์ด A ํด๋ผ์ด์ธํธ๊ฐ ๋ก๊ทธ์ธ ํ ํ ์ ์๋ ํ๋์ด๋ผ๋ฉด, ์ฒซ ๋ฒ์งธ ์์ฒญ์ด A ํด๋ผ์ด์ธํธ๊ฐ ํ ๊ฒ์ด๊ณ ๊ทธ ์ฌ๋์ด ๋ก๊ทธ์ธ ํ๋ค๋ ์ํ ์ ๋ณด๊ฐ Servlet ์ด๋๊ฐ์๋ ์ ์ฅ๋์ด ์์ด์ผ ํ๋ค. ์ด๋ฌํ ์ํ ์ ๋ณด๋ค์ ์ ์ฅํ์ฌ HTTP์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ์ ์ฅ์๊ฐ ํ์ํ๋ค.
1. PageContext
(1)์ ๊ทผ๋ฒ์, ์์กด๊ธฐ๊ฐ
page Context๋ ์ด๊ฑธ ๊ฐ์ง๊ณ ์๋ JSP์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
์์กด๊ธฐ๊ฐ์ JSP์ ์์๋ถํฐ ์ข ๋ฃ๊น์ง ์ด๋ค.
(2)์ ์ฅ๋๋ ๊ฐ
Page Context์ ์ ์ฅ๋๋ ์ ๋ณด๋ ์ง์ญ๋ณ์์ด๋ค.
๋ฐ๋ผ์ servlet์ ์ง์ญ๋ณ์๋ก์ ์ ์ธ๋๋ ๊ธฐ๋ณธ ๊ฐ์ฒด๋ค๋ page Context์ ํฌํจ์ด ๋๋ค.
์ฌ๊ธฐ์ ์๋ฌธ์ด ๋ ๋ค. ์๋ ์ง์ญ๋ณ์๋ ์ด๋ฏธ JSP์์ ์ ์ธ์ด ๊ฐ๋ฅํ๊ณ , ๊ธฐ๋ณธ ๊ฐ์ฒด์ ๊ฒฝ์ฐ์๋ JSP๋ฅผ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํํ ๋ ์๋์ผ๋ก ์ ์ธ์ด ๋๋๋ฐ ์ ๋ฐ๋ก page Context์ ์ ์ฅ ํด๋๊น?
๊ทธ ์ด์ ๋ EL ์ด๋ผ๋ ${} ํํ์ HTML ํํ ์ธ์ด๋ฅผ ์ฐ๊ธฐ ์ํจ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก JSP์์ JAVA ์ฝ๋๋ฅผ ์ธ ๋, <%~~%> ๋ <%=์ง์ญ๋ณ์>์ ๊ฐ์ ํํ๋ฅผ ๋ง์ด ์ด๋ค. ํ์ง๋ง ์ด๋ฐ ๊ฑฐ๋ ํ์ดํ์ด ๋ฒ๊ฑฐ๋กญ๋ค.
ํ์ดํ์ด ์ฌ์ฐ๋ฉด์ ๋ช ๊ฐ์ง ์ฅ์ ์ด ๋ ์๋ EL ${} ํํ์ ์ธ์ด๋ฅผ ์ฐ๊ธฐ ์ํด page Context๋ฅผ ์ฌ์ฉํ๋ค.
EL์ JSP์ ์ ํ์๋ ์ฝ๋์ ์ง์ ์ ๊ทผํ ์๊ฐ ์๊ธฐ ๋๋ฌธ์, page Context๋ผ๋ ์ ์ฅ์๊ฐ ๋ณ๋๋ก ํ์ํ๋ค.
2. application
(1) ์ ๊ทผ ๋ฒ์, ์์กด ๊ธฐ๊ฐ
application ์ ์ฅ์๋ ํด๋น WebApp ์ ์ฒด์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
jsp ๋ณ๋ก application์ ์ ๊ทผํ ๋ ์ด๋ค jsp๋ application์ ์ฐ๊ธฐ๋ง ๊ฐ๋ฅ, ์ด๋ค ๊ฑด ์ฝ๊ธฐ๋ง ๊ฐ๋ฅ์ผ๋ก ๋ณ๋ ์ค์ ํ ์๋ ์๋ค.
(2) ์ฌ๊ธฐ๋ค๊ฐ id๋ pwd ๊ฐ์ ๊ฐ์ธ์ ๋ณด ์ ์ฅํด๋๋ฉด,
HTTP์ stateless(์ํ์ ๋ณด ์ ์ฅx)๋ ๋จ์ ์ ๋ณด์ํ ์ ์์ง ์์๊น?
์ผ๋จ Page Context์ id, pwd๋ฅผ ์ ์ฅํด๋ดค์ ๋ฌด์์ฉ์ด๋ค.
์๋ํ๋ฉด jsp๋ ํด๋น ์์ฒญ๋ง ๋ค๋ฃจ๋ ๋ ์์ด๊ธฐ ๋๋ฌธ์ ๋ง์ฝ login.jsp์ page Context์ id๋ pwd๋ฅผ ์ ์ฅํด๋ดค์ ๋ค์์ ๋ก๊ทธ์ธ ๊ณ์ ์ฅ๋ฐ๊ตฌ๋ ์ ๊ทผ์ด๋ ๋ค๋ฅธ ์์ฒญ์ด ๋ค์ด์์ ๋๋ ๋ ๋ค๋ฅธ jsp๋ก ๊ฐ๊ธฐ ๋๋ฌธ์ ํด๋น ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์๊ฐ ์๋ค. pageContext์ ์ ๊ทผ ๋ฒ์๋ ๊ทธ ๋ ์์ ๊ฐ์ง๊ณ ์๋ jsp ๊น์ง์ด๋ค.
๊ทธ๋ ๋ค๋ฉด id,pwd ์ ๋ณด๋ฅผ application์ ์ ์ฅํด๋๋ฉด ์ด๋จ๊น?
๋ฌผ๋ก application์ ์ ์ฅํด๋๋ฉด, WebApp ์ ์ฒด์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ธฐ์ ๋ค๋ฅธ ์์ฒญ๋ ํด๋น ์ ์ฅ๋ ๋ด์ฉ์ ๋ค์ฌ๋ค ๋ณผ ์ ์๋ค.
ํ์ง๋ง, ํ ์ฌ๋๋ง์ด ํด๋น WebApp์ ์ฐ๋ ๊ฒ์ด ์๋๋ค.
๋ง์ฝ id = "adfs"๋ผ๊ณ ์ ์ฅํด๋๊ณ ์ฐ๊ณ ์์๋๋ฐ, ๋ค๋ฅธ ์ฌ๋์ด id="aaa"๋ก ๋ก๊ทธ์ธ ํด์ ๋ค์ด์ค๋ฉด application์ ์ ์ฅ๋ id ์ ๋ณด๋ "aaa"๋ก ๋ฐ๋๋ค. ์ด๋ฌ๋ฉด WebApp ์ ์ฒด์ ํผ์ ์ด ์๊ธด๋ค.
๋ฐ๋ผ์, ํด๋ผ์ด์ธํธ๋ง๋ค์ ๊ฐ๋ณ์ ์ธ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ์ application์ ์ ์ ํ์ง ์๋ค.
3. session
(1) ์ ๊ทผ ๋ฒ์, ์์กด ๊ธฐ๊ฐ
ํด๋ผ์ด์ธํธ ๋ณ๋ก ํ ๊ฐ ์ฉ ๊ฐ์ง๊ณ ์๊ณ , ํด๋น ํด๋ผ์ด์ธํธ๊ฐ ์ด์ฉํ๋ ๋ชจ๋ jsp์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
์์กด๊ธฐ๊ฐ์ ํด๋ผ์ด์ธํธ์ ๋ก๊ทธ์ธ ๋ถํฐ ๋ก๊ทธ์์ ๊น์ง์ด๋ค.
(2) ์ฐ์ด๋ ๊ณณ, ๋ฆฌ์คํฌ
Session์ ํด๋ผ์ด์ธํธ๋ง๋ค ๊ฐ๋ณ์ ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ์ ์ฅ์์ด๋ค. ๋ฐ๋ผ์ id, pwd ๊ฐ์ ๊ฐ๋ณ์ ์ธ ์ ๋ณด๋ ๋ชจ๋ ์ด Session์ ์ ์ฅ์ด ๋๋ค. (ex- ๋ก๊ทธ์ธ ์ ๋ณด, ํ์์ ์ฅ๋ฐ๊ตฌ๋, ํ์์ ๋ง์ผ๋ฆฌ์ง ์ ๋ณด ๋ฑ๋ฑ)
ํ์ง๋ง session์ ํด๋ผ์ด์ธํธ์ ์๋งํผ ๋ง๋ค์ด์ ธ์ผ ํ๋ค๋ ๋ฆฌ์คํฌ๊ฐ ์๋ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ง ๋ช ์ด๋ฉด, ๋ง ๋ช ์ session์ด ๋ค ๋ง๋ค์ด์ ธ์ผ ํด์, WebApp์ ์ฉ๋์ ๋ถ๋ด์ ์ค๋ค.
๋ฐ๋ผ์ session์๋ ํ์ํ ์ต์ํ์ ์ ๋ณด๋ง ์ ์ฅ๋์ด ์์ด์ผ ํ๋ค.
session๊ณผ ํด๋ผ์ด์ธํธ๋ฅผ ์ด์ด์ฃผ๋ ๋งค๊ฐ์ฒด ์ญํ ์ ํ๋ ๊ฒ์ด ์ฟ ํค์ด๋ค. ์ฐธ๊ณ ๋ง ํ์.
4. request
(1) ์ ๊ทผ ๋ฒ์, ์์กด ๊ธฐ๊ฐ
request ๊ฐ์ฒด๊ฐ ์๊ธธ ๋๋ง๋ค, ํด๋น ๊ฐ์ฒด์ ๋ํ ์ ์ฅ์๋ ๊ฐ์ด ์๊ธด๋ค.
request ์ ์ฅ์๋ ์๋ก ์ํธ ๋ ๋ฆฝ์ ์ด๋ค.
request ์ ์ฅ์๋ 1๊ฐ ์ด์์ jsp์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
์์กด ๊ธฐ๊ฐ์ ์์ฒญ ์์๋ถํฐ ์๋ต ๋ฐ์ ๋ ๊น์ง์ด๋ค.
(2)Forword
๋ณดํต ์์ฒญ์ ํ๋์ jsp๋ฅผ ๋ง๋ ์ฒ๋ฆฌ ๋๊ณ ์๋ต๋๊ธฐ ๋๋ฌธ์ ํ๋์ jsp์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํด๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์๋ฐ ์ 1๊ฐ ์ด์์ jsp์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๊น?
์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
์์ฒญ์ ๋ฐ์ a.jsp์์ ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํ์ง ๋ชปํ ์, ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ b.jsp๋ก ์์ฒญ์ ๋๊ธธ ์ ์๋ค. ์ด๋ b.jsp๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ 1๊ฐ ์ด์์ jsp์์ ์ ๊ทผ ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ๋๊ธฐ๋ ํ์๋ฅผ Forwarding์ด๋ผ ๊ทธ๋ฌ๊ณ ,
์์ฒญ์ ๋๊ธธ ๋, a.jsp์์ ํด๋น ์ผ์ ์ฒ๋ฆฌํ๋๋ฐ ํ์ํ ์ ๋ณด๋ฅผ request ์ ์ฅ์์ ์ถ๊ฐ ํ์ฌ ๊ฐ์ด ๋๊ธธ ์ ์๋ค.