ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ๋ผ ์๋ฒ์์ ๋์ ์ผ๋ก ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํด๋์ค ์๋ธ๋ฆฟ์ ์ผ๋ฐ์ ์ธ ์๋ฐ์ ๋ฌ๋ฆฌ ํฐ์บฃ๊ณผ ๊ฐ์ JSP/Servlet ์ปจํ ์ด๋์์ ์คํ๋๋ค. ์๋ธ๋ฆฟ์ ๋์ ๊ณผ์ ์ด๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ฉด web server๋ WAS์ ์์ํ๋ค. WAS๋ ๊ฐ ์์ฒญ์ ํด๋นํ
์ฐธ๊ณ ์์ ์๋ฐ ์น์ ๋ค๋ฃจ๋ ๊ธฐ์ ํฐ์บฃ๊ณผ ๊ฐ์ Web Application Server(์ดํ WAS)๊ฐ ์ฒ์ ๋์์ ๋ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ์ ์ฐ๋ ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ธฐ์ ์ด ์๋ธ๋ฆฟ์ด์๋ค. ์๋ธ๋ฆฟ์ ์๋ฐ๋ก ์น ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ๋ฐ ์์ด์ ๊ฐ์ฅ ๊ธฐ์ด๊ฐ ๋๋ ๋ด์ฉ์ด๋ค.์๋ธ๋ฆฟ ๊ธฐ
์๋ธ๋ฆฟ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ๋ฐ์ดํฐ๊ฐ URL ๋ค์ ๋ฐ๋ผ ๋ถ๋๋ค.์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋๋ '&'๋ก ๊ตฌ๋ถํ๋ค.๋ณด์ ์ทจ์ฝ์ ์กํ ์ ์๋ ๋ฐ์ดํฐ๋ ์ต๋ 255์๊ธฐ๋ณธ ์ ์ก ๋ฐฉ์์ด๋ฉฐ ์ฌ์ฉ์ด ์ฝ๋ค.์น ๋ธ๋ผ์ฐ์ ์ ์ง์ ์ ๋ ฅํด์ ์ ์กํ ์๋ ์๋ค.์๋ธ๋ฆฟ์์๋ doGet()์ผ๋ก
๋น์ฆ๋์ค ๋ก์ง > ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๋น์ฆ๋์ค ๋ก์ง์ด๋ผ ํ๋ค. ์ด๋ฅผํ ๋ฉด ์ผํ๋ชฐ์์ ํด๋ผ์ด์ธํธ๊ฐ 1๋ฒ ์ํ ์ ๋ณด๋ฅผ ์์ฒญํ๋ค. ๊ทธ๋ผ ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 1๋ฒ ์ํ ์ ๋ณด๋ฅผ ์กฐํํ๋ค. ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํ๊ธฐ๊น์ง ์ํํ๋ ์์ ์ด ๋น์ฆ๋
Forward > ํ๋์ ์๋ธ๋ฆฟ์์ ๋ค๋ฅธ ์๋ธ๋ฆฟ ๋๋ JSP์ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ํฌ์๋๋ผ๊ณ ํ๋ค. ์์ฒญ์ ๋ํ ์ถ๊ฐ ์์ ์ ๋ค๋ฅธ ์๋ธ๋ฆฟ์์ ์ํํ๊ฒ ํ๋ค. ์์ฒญ์ ํฌํจ๋ ์ ๋ณด๋ฅผ ๋ค๋ฅธ ์๋ธ๋ฆฟ, JSP์ ๊ณต์ ํ ์ ์๋ค. ์์ฒญ์ ์ ๋ณด๋ฅผ ํฌํจ์์ผ ๋ค๋ฅธ ์๋ธ๋ฆฟ์ ์ ๋ฌํ ์
๐ ์๋ฐ ์น์ ๋ค๋ฃจ๋ ๊ธฐ์ ์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋จ๊ณผ ๋์์ ์ฐ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฏธ๋ฆฌ ์ฐ๊ฒฐ ํด๋๋ค. ํ์ํ ๋๋ง๋ค ๋ฏธ๋ฆฌ ์ฐ๊ฒฐํด๋์ ์ํ๋ฅผ ์ด์ฉํด ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์์ ์ ํ ์ ์๋ค. ์์ฝํ์๋ฉด ๋ฏธ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ ์ํจ ์ํ๋ฅผ ์ ์งํ
์น ํ๋ก๊ทธ๋จ ์คํ ์ ์์(๋ฐ์ดํฐ)์ ์๋ธ๋ฆฟ ๊ด๋ จ ๊ฐ์ฒด์ ์ ์ฅํ๋ ๋ฐฉ๋ฒGET๋ฐฉ์์ผ๋ก ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ธฐ์ ํ๊ณ๊ฐ ์๋ค. ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ๋ฐ์ธ๋ฉbinding์ ์ฌ์ฉํ๋ค.๊ทธ๋ฅ key-value๋ค.์์ ๋ณด๋ด๋ ์ชฝ๋ฐ๋ ์ชฝredirect๊ฐ ์๋ RequestDi
์ด๋ฏธ์ง ์ถ์ฒ : https://www.oreilly.com/library/view/head-first-servlets/9780596516680/ch05s10.html โ javax.servlet.ServletContext ํน์ง ์๋ธ๋ฆฟ - ์ปจํ ์ด๋ ์ฐ๋์ ์ํด
์ธ์ ํธ๋ํน .jpg) HTTPํ๋กํ ์ฝ ๋ฐฉ์์ผ๋ก ํต์ ํ๋ ์น ํ์ด์ง๋ ์๋ก ์ด๋ค ์ ๋ณด๋ ๊ณต์ ํ์ง ์๋๋ค. > ์ฟ ํก ๋ฉ์ธ ํ์ด์ง์์ ๋ก๊ทธ์ธํ๊ณ ์ฃผ๋ฌธ ํ์ด์ง์์ ๋ ๋ค์ ๋ก๊ทธ์ธํ์ง ์์๋ ๋๋ ์ด์ ๋ ์ธ์ ํธ๋ํนSession Tracking์ด๋ผ๋ ์น ํ์ด์ง ์ฐ๊ฒฐ๊ธฐ๋ฅ์
์น ํ์ด์ง๋ค ์ฌ์ด์์ ๊ณต์ ํ๋ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ์ฅํด๋๊ณ , ์น ํ์ด์ง๋ค์ ๋งค๊ฐํ๋ค๋ ์ ์์ ์ธ์ ๋ ์ฟ ํค์ ๋ค๋ฅด์ง ์๋ค. ๋ค๋ฅธ ์ ์ด๋ผ๋ฉด ์ฟ ํค๋ ํด๋ผ์ด์ธํธ PC์ ์ ์ฅ๋๊ณ , ์ธ์ ์ ์๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ค๋ ์ ์ด๋ค. ์ฟ ํค์ ๋นํด ๋ณด์์ด ์ข๊ธฐ ๋๋ฌธ์ ๋ก๊ทธ์ธ์ฒ๋ผ ๋ณด์์ ์๊ตฌํ๋
์ฟ ํค๋ฅผ ์ฌ์ฉํ์ง ์๊ฒ ๋ค๊ณ ์ค์ ํ ๋ธ๋ผ์ฐ์ ์์๋ ์ฟ ํค๋ ๋ฌผ๋ก ์ธ์ ๋ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ, encodeURL()๋ก ์ง์ ์๋ฒ์์ ๋ธ๋ผ์ฐ์ ๋ก ์๋ต์ ๋ณด๋ธ ํ, URL Rewriting์ ์ด์ฉํด JSESSIONID๋ฅผ ์๋ฒ๋ก ์ ์กํ์ฌ ์ธ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
์๋ธ๋ฆฟ๊ณผ DB๋ฅผ ์ฐ๋ํด์ ID ์ฒดํฌ๋ฅผ ํ๊ณ ,๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๋ ์์ ๋ค.์์๋ ์ด๋ ๋ค.login.html์์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ค.LoginServlet์ ์ ๋ ฅ ๋ฐ์ ID๋ก DB์ ์กฐํํ๋ค.์๋ ์์ด๋๋ผ๋ฉด login.html๋ก ๋๋ ค๋ณด๋ธ๋ค.์๋ ์์ด๋๋ผ๋ฉด /sh
Servlet Scope! ์๋ธ๋ฆฟ ์์ฑattribute ์ธ ๊ฐ์ง ServletContext HttpSession HttpServletRequest ๊ฐ ์์ฑ์ setAttribute()๋ก ๋ฐ์ธ๋ฉํ๊ณ getAttribute()๋ก ๊บผ๋ด์ ์ด๋ค. > ์๋ธ๋ฆฟ ์ค์ฝํscope
์์ฒญ/์๋ต๊ณผ ๊ด๋ จ๋ ์์ ์ ๋ฏธ๋ฆฌ ์ฒ๋ฆฌํ๋ค. ์ด๋ฅผํ ๋ฉด setCharacterEncoding()๊ฐ์ ๊ท์ฐฎ์ ์์ ์ ํํฐ์ ์ค์ ํด๋๋ฉด ์์ฒญ/์๋ตํ ๋ ์์์ ํ๋ค.ํํฐ๋ ํฌ๊ฒ ์์ฒญ ํํฐ์ ์๋ต ํํฐ๋ก ๋๋ ์ ์๋ค.์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ๊ถํ ๊ฒ์ฌ์์ฒญ ์ ์์ฒญ ๊ด๋ จ ๋ก๊ทธ ์์ ์ธ์ฝ๋ฉ
์๋ธ๋ฆฟ์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ ๊ณตํ๋ ๋ฆฌ์ค๋HttpSessionBindingListener๋ฅผ ์ ์ธํ ๋ชจ๋ Listener๋ @WebListener๋ฅผ ์ฌ์ฉํด์ Listener๋ก ๋ฑ๋กํด์ผ ํ๋ค.์ ์์ ์์ ์ ์์ ์์ด๋๋ฅผ ์ง๊ณํด ํ๋ฉด์ ๋์ฐ๋ ์์ ๋ค.co
๋จผ ์๋ . ์๋ธ๋ฆฟ ์์ htmlํ๊ทธ๋ฅผ ์จ์ ํ๋ฉด์ผ๋ก ์ ๋ฌํ๋ ์์ . ๋์์ด๋์ ๊ฐ๋ฐ์๋ ์๋ก ์ผ๊ตด ๋ถํ ์ผ์ด ๋ง์์ ๊ฒ์ด๋ค. ์ด๋ฐ ์ผ์ด ์์๋ค. ๋์์ด๋๋ ์ค๋ ์ผ์ฐ ํด๊ทผํด์ ์ ์ธ๊ณผ ์ข ๋ก์์ ๊ฐ์ฅ ์ค๋๋ ๋ ์คํ ๋์ธ ์์ง์ค์ ๊ฐ ์๊ฐ์ด๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐ๋ฐ์๋ผ๋ ์์๊ฐ ์์ ์
JSP๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ํ๋ฉด ๊ฐ๋ฐ์ ๋ถ๋ฆฌํ๋ ค๋ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋์๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ์คํฌ๋ฆฝํธ๋ฆฟ<%%>๊ฐ์ ๋ ์๋ค์ด HTML ์์ญ์ ์นจ๋ฒํ๋ค. ๋ฐฉ์ญํ๊ณ ๋ฐฉ์ญํด๋ ์ฃฝ์ง ์๋ ์ฝ๋ก๋์ฒ๋ผ. ์ฃฝ์ผ ์ ์์ผ๋ ๋ง์คํฌ๋ผ๋ ์ฐ์...๋ ๋ง์์ผ๋ก ๋ง๋ค์ด์ง ๊ฒ์ด ์ก์ ํ๊ทธ๋ค.ํ๋ผ๋ฏธ
ํํ์ธ์ด EL > ์ก์ ํ๊ทธ์ ์ด์ด์ JSP์์ ์๋ฐ ์ฝ๋๋ฅผ ์์ ๋ ค๋ ๋ ธ๋ ฅ์ ๊ณ์๋์๋ค. EL์ ์ข ๋ ํธ๋ฆฌํ๊ฒ ์๋ฐ ํํ์์ ๋ค๋ฃจ๊ธฐ ์ํด JSP2.0๋ถํฐ ๋์ ๋์๋ค. ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ ์ญํ ์ ํ๋ค. ํน์ง ๊ธฐ์กด ํํ์๋ณด๋ค ํธ๋ฆฌํ๊ฒ ๊ฐ์ ์ถ๋ ฅํ๋ค. ๋ณ์์ ์ฌ๋ฌ ์ฐ์ฐ์๋ฅผ
EL์ด๋ ์ก์ ํ๊ทธ๋ฅผ ์ด์ฉํด๋ ์ฌ์ ํ ์๋ฐ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์๋ฐ์ ์๋ ์ํฉ์ด ์๋ค. ์ด๋ฅผํ ๋ฉด ๋ฐ๋ณต๋ฌธ์ด๋ ์กฐ๊ฑด๋ฌธ ๊ฐ์ ๊ฒ์ ์ธ ๋. ์ด๊ฒ์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ปค์คํ ํ๊ทธ๊ฐ ๋ฑ์ฅํ๋ค. ์ปค์คํ ํ๊ทธ๋ ์๋ฐ ์ฝ๋๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ๋ง๋ ํ๊ทธ๋ค. JSTL์ ์ปค์คํ ํ๊ทธ์ ํ ์ข ๋ฅ๋ค.
์ด๋ค ์ผ์ด๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ด ์๋ค. ๊ทธ๋ค๋ง์ ๋ฃฐ. ์ฐ๋ฆฌ๋ 'ํ์ค'์ด๋ผ๊ณ ํ๋ค. ์น ๊ฐ๋ฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ๊ผญ ๊ทธ๋์ผ๋ง ํ ํ์๋ ์์ง๋ง ์ฌ๋งํ๋ฉด ์ด๋ฐ ๊ตฌ์กฐ๋ก ๋ง๋ค์, ๊ณ ํ๋ 'ํ์ค'์ด ์๋ค. ์ด๊ฒ์ ๋ชจ๋ธ์ด๋ผ๊ณ ํ๋ค. ๋น์ฆ๋์ค ๋ก์ง๊ณผ ํ๋ฉด ์ฒ๋ฆฌ๋ฅผ ํ๋์ JSP๊ฐ ๋ชจ๋