http://localhost:8080/04_17/time.jsp localhost:8080 -> ๋ด ์ปดํจํฐ์ ์ ์ํ๊ฒ ๋ค๋ ๋ป ์ฝ๋ก ๋ค์๋ 8080์ด๋ผ๋ ๋ธ๋ผ์ฐ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ด ์ปดํจํฐ์ ์๋ค. ์ง์ ์๋ ip๋ ๋ด๋ถip์ด๋ค. ํต์ ์ ํ ๋ ค๋ฉด ์ฐพ์๊ฐ ์ ์๋ ๊ฒฝ๋ก
JSP ํ์ด์ง๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ค์ํ ์์๋ค์ด ํ์ํ๋ค. HTML ๋ฌธ์๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ๋ค์ํ ๊ฒ๋ค์ด ํ์ํ๋ฐ ์ด๋ฅผ ์ํด JSP๋ 7๊ฐ์ง์ ๊ตฌ์ฑ์์๊ฐ ์๋ค.๋๋ ํฐ๋ธ(Directive)์คํฌ๋ฆฝํธ: ์คํฌ๋ฆฝํธ๋ฆฟ(Scriptlet), ํํ์(Expression), ์ ์ธ๋ถ(Dec
โ๏ธ JSP ํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๊ธฐ ์ํด ์ฌ์ฉJSP ํ์ด์ง๊ฐ ์ด๋ค ๋ฌธ์๋ฅผ ์์ฑํ๋๊ฐ์ด๋ค ์๋ฐ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋๊ฐ์ธ์ (session)์ ์ฐธ์ฌํ๋๊ฐ์ถ๋ ฅ ๋ฒํผ์ ์กด์ฌ ์ฌ๋ถโก๏ธ JSP ํ์ด์ง๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ ๋ ฅํ ์ ์๋ค.๊ฐ๊ฐ contentType ์์ฑ๊ณผ
โ๏ธ ๋ฌธ์์ ๋ด์ฉ์ ๋์ ์ผ๋ก ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฒโ๏ธ htmlํ๊ทธ์์ java๋ฅผ ์ธ ์ ์๊ฒ ํด์ฃผ๋ ํ๊ทธJSP ํ๋ก๊ทธ๋๋ฐ์์ ๋ก์ง์ ์ํํ๋๋ฐ ํ์ํ๋ค.๊ทธ๋ฌํ ๋ถ๋ถ์์ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฌ์ฉํด์ ํ๋ก๊ทธ๋จ์ด ์ํํด์ผ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๋ค.โ๏ธ java ์ฝ๋ ์ค
โ๏ธ ์น ๋ธ๋ผ์ฐ์ ์์ JSP ํ์ด์ง๋ก ์ ๋ฌ๋๋ ์ ๋ณด์ ๋ชจ์JSP ํ์ด์ง์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ๊ฐ์ฒด โก๏ธ ์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ์น ๋ธ๋ผ์ฐ์ ์ ์น ์ฌ์ดํธ์ ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด, ์น ๋ธ๋ผ์ฐ์ ๋ ํด๋น ์น ์๋ฒ์ ์ฐ๊ฒฐํ ํ ์์ฒญ ์ ๋ณด๋ฅผ ์ ์ก โก๏ธ requst ๊ธฐ๋ณธ๊ฐ์ฒด๊ฐ ์์ฒญ ์
โ๏ธ ์น ๋ธ๋ผ์ฐ์ ์ ๋ณด๋ด๋ ์๋ต ์ ๋ณด๋ฅผ ๋ด์์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ๋ํ ์๋ต์ response ๊ฐ์ฒด๋ฅผ ํตํ์ฌ ์ฒ๋ฆฌํ๋ค.ํค๋ ์ ๋ณด ์ ๋ ฅ๋ฆฌ๋ค์ด๋ ํธ ํ๊ธฐ โญ๏ธresponse ๊ธฐ๋ณธ ๊ฐ์ฒด๋ ์๋ต ์ ๋ณด์ ํค๋๋ฅผ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.๋ฉ์๋์ ๋ชจ๋ void์ด๋ค.์ ๋ณด๋ฅผ ๋ง๋ค์ด๋ด๋
JSP ํ์ด์ง๋ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ๊ณง๋ฐ๋ก ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ์ง ์๋๋ค.๋์ ์ถ๋ ฅ ๋ฒํผ(buffer)๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ณณ์ ์์๋ก ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ค๊ฐ ํ ๋ฒ์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ๋ค.์๋ฅผ ๋ค์ด, ํฐ ์น์ฌ์ดํธ๋ฅผ ๋ณด๋ฉด ๋ก๋๋ ๋ ์กฐ๊ธ์ฉ ์กฐ๊ธ์ฉ ๋ด๋ ค์ค๋๊ฒ ์๋๊ณ ํ๋ฒ์ ํญ ๋จ์ด์ง๊ณ
๊ฐ๋ฐ์ ํ์์ผ๋ฉด, ์ฌ์ฉ์๊ฐ ์ ์ํ ์ ์๋๋ก ๋ฐฐํฌ๋ฅผ ํด์ฃผ์ด์ผ ํ๋ค.๋ฐฐํฌ๋ผ๋ ๋ง์ ๊ฐ๋ฐ์ ๋ง์ณค์ ๋ ์ด๋ป๊ฒ ํ๋ ๊ฐ๋ฅผ ์๋ฏธํ๋ค.โ๏ธ Java EE: WAR(Dynamic Web Project)โ๏ธ WAR: web application archive(์ฐธ๊ณ ๋ก Java SE๋
request์ response ๊ธฐ๋ณธ ๊ฐ์ฒด ์ด์ธ์ ๋๋จธ์ง JSP ๊ธฐ๋ณธ ๊ฐ์ฒด๋ ์์๋ณด์.JSP๋ ๋ ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ํฌํจํด์ 9๊ฐ์ง์ ๊ธฐ๋ณธ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.request โญ๏ธ: javax.servlet.http.HttpServletRequest: ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ ๋ณด๋ฅผ
โ๏ธ JSP ํ์ด์ง๊ฐ ์์ฑํ๋ ๋ชจ๋ ๋ด์ฉ์ out ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ํตํด ์ ์ก๋จJSP ํ์ด์ง ๋ด์์ ์ฌ์ฉํ๋ ๋น-์คํฌ๋ฆฝํธ ์์๋ค(HTML, ์ฝ๋์ text)์ out ๊ธฐ๋ณธ ๊ฐ์ฒด์ ๊ทธ๋๋ก ์ ๋ฌ๋๋ค. ๊ฐ์ ์ถ๋ ฅํ๋ ํํ์์ ๊ฒฐ๊ณผ๊ฐ๋ out ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์ ๋ฌ๋๋ค.โ ๊ทธ๋ฅ ์จ๋ ๋
โ๏ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ ๊ฑธ์ณ์ ์ฌ์ฉ๋๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค.ํน์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ํฌํจ๋ ๋ชจ๋ JSP ํ์ด์ง๋ ํ๋์ application ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ๊ณต์ ํ๊ฒ ๋๋ค.application ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์ผ์ ์ํํ ์ ์๋ค.์ด๊ธฐ ์ค์ ์ ๋ณด๋ฅผ ์ฝ์ด
์น์ ์๋ ์ํ๋ฅผ ์ ์ฅํ๊ฒ๋ ๋ง๋ค์ด์ง์ง ์์๋ค. ์ด์ฐฝ๊ธฐ ์น์ ํญ์ ์ ํด์ ธ์๋ ์ ์ ๋ฐ์ดํฐ๋ง ์ฌ์ฉ๊ฐ๋ฅํ์ง๋ง, ํ์ฌ๋ ์ํ๋ผ๋ ์ ๋ณด๋ฅผ ๋ฃ์์ผ๋ก์จ, ๊ฐ์ ์ ์ฅํ๋ฉฐ ๊ทธ ๊ฐ์ด ์ธ์ ๊น์ง ์ ์ง๋๋์ง ์ ์ ์๊ฒ ๋์๋ค.์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ํ์๊ฐ์ ์ ํ ๋ ๋ณธ์ธ์ธ์ฆ โก๏ธ ๊ฐ์ โก๏ธ
โ๏ธ ์๋ฌ ํ๋ฉด์ ํฐ์บฃ์ด ์์ฑํ ๊ฒ๋ง์ฝ name ํ๋ผ๋ฏธํฐ๊ฐ ์์ผ๋ฉด request.getParameter("name") ์ null ์ ๋ฆฌํดํ๋ฏ๋ก NullPointerException ์ ๋ฐ์์ํจ๋ค.๊ฐ๋ฐ ๊ณผ์ ์์๋ ์๋ฌ ํ๋ฉด์ ํ์๋ ์๋ฌ ๋ด์ฉ์ ๋ณด๊ณ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ
โ๏ธ <jsp:include> โก๏ธ ํ๋ฉด ๊ตฌ์ฑ ์์์ ์ฝ๋ ์ค๋ณต ๋ฌธ์ ๋ฅผ ์๊ฑฐโก๏ธ ์์นํ ๋ถ๋ถ์ ์ง์ ํ ํ์ด์ง๋ฅผ ํฌํจ๋ณดํต ํ๋์ ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ฑํ๋ ํ์ด์ง๋ค์ ๋์ผํ ์๋จ ๋ฉ๋ด, ์ฌ์ด๋ ๋ฉ๋ด, ์ค์ ์ปจํ ์ธ ์ ๊ฐ๋๋ค. ์ด๋ฐ ๊ณตํต ๊ตฌ์ฑ ์์๋ฅผ ์ํ ์ฝ๋๋ฅผ ๋ชจ๋ JSP
โ๏ธ ์ง์ ํ ํ์ด์ง๋ฅผ ํ์ฌ ์์น์ ํฌํจ์์ผ ์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตโ๏ธ <%@ include file="ํฌํจํ ํ์ผ" %>file ์์ฑ: include ๋๋ ํฐ๋ธ๋ฅผ ์ฌ์ฉํด์ ํฌํจ ํ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ JSP ํ์ผ์ ์๋ฐ ํ์ผ๋ก ๋ณํํ๊ธฐ ์ ์ include ๋๋ ํฐ๋ธ์์ ์ง์
jsp์์ ๊ฒฝ๋ก ์์ contextPath ๋ฅผ ๋ถ์ฌ ์ ๋ ๊ฒฝ๋ก๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ง์ด ์ฐ๋๋ก ํ์.ํ jsp ํ์ด์ง์ ๋ํด ์ง์ jsp ๊ฒฝ๋ก๋ก ์ ๊ทผํ๋ ๊ฒฝ์ฐ์ ์๋ธ๋ฆฟ์ ํตํด jsp๋ฅผ ์ ๊ทผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ํ ๋, ๊ฐ ๊ฒฝ์ฐ๊ฐ ๋ฐ์๋ค์ด๋ ์๋ ๊ฒฝ๋ก๋ ๋ค๋ฅผ ์ ์๋ค. ๊ทธ๋์
โ๏ธ Web Information: web์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์๋ฏธWeb ์ ๋ณด์ ๊ดํ ์ค์ํ ํ์ผ๋ค์ WEB-INFํด๋์ ๋ฃ๊ฒ๋๋ค. ์๋ฅผ ๋ค์ด web.xml , libํด๋ , javaํ์ผ(/WEB-INF/classes) ๋ฑ์ด ์๋ค. ์ด๋ฐ ์ค์ํ ํ์ผ๋ค์ด ์๋ WEB-I
๐ก ์ก์ ํ๊ทธ๋ฅผ ์ด์ฉํ JSP ํ์ด์ง ์ด๋ > โ๏ธ ํ๋์ JSP ํ์ด์ง์์ ๋ค๋ฅธ JSP ํ์ด์ง๋ก ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉ๋จ โ๏ธ ์ ์์ฒญ ํ๋ฆ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ์ from.jsp์ ์ ๋ฌํ๋ค.
๐ก ์๋ฐ๋น (JavaBeans) > โ๏ธ ์์ฑ(๋ฐ์ดํฐ), ๋ณ๊ฒฝ ์ด๋ฒคํธ, ๊ฐ์ฒด ์ง๋ ฌํ๋ฅผ ์ํ ํ์ค JSP์์ ์ ๋ณด๋ฅผ ํํํ ๋ ์ฌ์ฉํ๋ ๊ฒ ์ค ํ๋ JSP์์๋ ์์ฑ์ ํํํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ ํ์ ์ ๋ณด, ๊ฒ์ํ ๊ธ ๋ฑ์ ์ ๋ณด๋ฅผ ์ถ๋ ฅ โก๏ธ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์๋ ์
๐ช Cookie > โ๏ธ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ณด๊ดํ๋ ๋ฐ์ดํฐ โ๏ธ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ์ ์ํ๊ฐ์ ์ ์งํ๋ ๊ฒ ์น ๋ธ๋ผ์ฐ์ ๋ ์น ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋ ์ฟ ํค๋ฅผ ํจ๊ป ์ ์ก โก๏ธ ์น ์๋ฒ๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์กํ ์ฟ ํค๋ฅผ ์ฌ์ฉํด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ JSP์์ ์์ฑํ๋ ์ฟ ํค๋
๋งค๋ฒ ํน์ ์ฟ ํค์ ๊ฐ์ ์ฝ๊ณ ์ญ์ ํ๋ ค๋ฉด ๊ทธ ๊ธด ์ฝ๋๋ฅผ ๊ณ์ ์ฌ์ฉํด์ผ ํ๋ค.(์ฐธ๊ณ โก๏ธ \[ํด๋ผ์ด์ธํธ์์ ๋ํ 1: Cookie](https://velog.io/@jipark09/JSP-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A
โ๏ธ ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํ ์ ๋ณด๋ฅผ ์น ์ปจํ ์ด๋(์น ์๋ฒ)์ ์ ์ฅ ์ด ํด๋ผ์ด์ธํธ๊ฐ ๋ญ ํ๋๊ฐ๋ฅผ ๋ด๋น์๋ฒ๋ ์ธ์ ์ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ์ ์งํ ์ ์๋ค.โก๏ธ ๋ก๊ทธ์ธํ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ธ์ ์ฌ์ฉ์น ์ปจํ ์ด๋๋ ์น ๋ธ๋ผ์ฐ์ ๋ง๋ค ํ
๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด session ๊ธฐ๋ณธ ๊ฐ์ฒด์ ํน์ ์์ฑ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ๋ค.์ดํ๋ก session ๊ธฐ๋ณธ ๊ฐ์ฒด์ ํน์ ์์ฑ์ด ์กด์ฌํ๋ฉด ๋ก๊ทธ์ธํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ค.๋ก๊ทธ์์ํ ๊ฒฝ์ฐ session.invalidate() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ธ์ ์ ์ข ๋ฃํ๋ค.โ๏ธ session ๊ธฐ๋ณธ
๐ฌ ๋ค์ํ ์น ํ๋ ์์ํฌ์ ์ถํ์ผ๋ก ์๋ธ๋ฆฟ์ ์ง์ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ๊ฐ ํ์น ์๋ค. ํ์ง๋ง java ์น ๊ฐ๋ฐ์๋ผ๋ฉด ์๋ธ๋ฆฟ์ด ๋ฌด์์ด๊ณ ์๋ธ๋ฆฟ์ ๋์ ๋ฐฉ์์ ์ดํดํ๋ ๊ฒ์ ํ์๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ Servlet์ ๊ณต๋ถํ๊ณ ๋์ด๊ฐ๋ ๊ฒ์ด ์ข๋ค. ๐ก Servlet > โ๏ธ