์๋ ํ์ธ์!
์ค๋์ JSP๋ Servlet์ ๋์ ํ๋ฆ์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ค๋ค์ด์
์์ด ๋ง์์ ํต์ฌ๋ง ๊น๋ํ๊ฒ ์ ๋ฆฌํด ๋ณผ๊ฒ์

ํ์ด์ง ์ด๋, ๋ ๊ฐ์ง ๋ฐฉ์

์๋ธ๋ฆฟ์์ out.print๋ก ๊ฒฐ๊ณผ๋ฅผ ์ง์ ๋ฝ๋ ๊ฑด ๋๋ฌด ๋ถํธํด์
๊ทธ๋์ JSP๋ก ๋๊ฒจ์ ์๋ต์ ๋ง๋๋ ๊ตฌ์กฐ๋ฅผ ์ก์์ด์
์ด๋ ๋ฐฉ์์ ๋ ๊ฐ
RequestDispatcher.forward()
๊ฐ์ ์น ์ปจํ
์คํธ ์์ JSP๋ก ์ด๋
์์ฒญยท์๋ต ๊ทธ๋๋ก ์ ๋ฌํ๊ณ ๋์์ค์ง ์์์
์๋ฒ ์ฌ์ด๋ ์ด๋
response.sendRedirect()
์ธ๋ถ ์๋ฒ๋ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋
ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ์์ฒญํ๋ ๋ฐฉ์
์นด์นด์ค ์ธ์ฆ ์๋ฒ ๊ฐ์ ์ธ๋ถ ์ด๋์ ์ฌ์ฉ
JSP๋ ์ฌ์ค ์๋ธ๋ฆฟ์ด์์

JSP๋ฅผ ์์ฒญํ๋ฉด
JSP์ฉ .java ํ์ผ์ด ์๋ ์์ฑ๋๊ณ .class๋ก ์ปดํ์ผ๋ผ์ ์คํ๋ผ์
ํ์ธํ๋ ๊ฒฝ๋ก๋
์นดํ๋ฆฌ๋ ๋ฒ ์ด์ค์ work ํด๋ ์์ด์์
์ธํ
๋ฆฌJ ํฐ์บฃ ์ฝ์์ ๊ฒฝ๋ก๊ฐ ๋ ์์ด์
๊ทธ๋ฆฌ๊ณ JSP ์์ HTML ํ๊ทธ๋
์ ๋ถ out.write()์ ์ธ์๋ก ๋ค์ด๊ฐ์
๊ทธ๋์ ์๋ฏธ ์๋ ์ค๋ฐ๊ฟ์ด๋ ํญ์ ๋ง์ด ์ฐ๋ฉด
java ํ์ผ ์ฉ๋์ด๋ ๋คํธ์ํฌ ๋น์ฉ๊น์ง ๊ฐ์ด ๋์ด๋์
JSP๋ ๊น๋ํ๊ฒ ์ฐ๋ ๊ฒ ์ข์์
ํ์ด์ง ๋๋ ํฐ๋ธ ์ ๋ฆฌ

JSP ๋งจ ์์ ์ ๋ <%@ page %> ์์์์.java ํ์ผ์ด ๋ง๋ค์ด์ง ๋ ํ์ํ ์ ๋ณด๋ฅผ ์ค์ ํด์
- contentType โ ์๋ต ํ์ (
text/html; charset=UTF-8) - import โ ํ์ํ ํด๋์ค import
- errorPage โ ์์ธ ๋ฐ์ ์ ์ด๋ํ ํ์ด์ง
- isErrorPage โ ์ด ํ์ด์ง๊ฐ ์๋ฌ ์ ์ฉ ํ์ด์ง์ธ์ง
- buffer โ ์๋ต ์ถ๋ ฅ ๋ฒํผ ํฌ๊ธฐ (๊ธฐ๋ณธ 8KB)
isErrorPage="true"๋ก ์ค์ ํ ํ์ด์ง์์๋exception ๋ด์ฅ ๊ฐ์ฒด๋ฅผ ์ธ ์ ์์ด์
๋ฒํผ๊ฐ ์์ธ๋ก ์ค์ํด์
๊ธฐ๋ณธ 8KB ๋ฒํผ์ธ๋ฐ
์ด ์์ ๋ค ์ ์ฑ์์ง ์ํ์์ ์์ธ๊ฐ ๋๋ฉด
forward๊ฐ ๋ฐ์ํ๋ฉด์ ๊ธฐ์กด ๋ฒํผ ๋ด์ฉ์ด ์น ํด๋ฆฌ์ด๋ผ์
ํ๋ คํ JSP์ผ์๋ก ๋ฒํผ ์กฐ์ ์ด ํ์ํ ์ด์ ์์buffer="none"์ผ๋ก ๋๋ฉด ์ฆ์ ์ถ๋ ฅ์ ๋๋๋ฐ
์ํฉ ๋ง์ถฐ ์กฐ์ ํ์๋ฉด ๋ฉ๋๋ค
์ ์ ํฌํจ vs ๋์ ํฌํจ

JSP์์ ๋ค๋ฅธ ํ์ด์ง๋ฅผ ๋ผ์ฐ๋ ๋ฐฉ๋ฒ์ด ๋ ๊ฐ์ง์์
<%@ include file="..." %>
์ ์ ํฌํจ, .java ๋ง๋ค์ด์ง ๋ ๋ด์ฉ์ด ๊ทธ๋๋ก ๋ฐํ
์ ์ ๋ฐ๋๋ ํค๋, ํธํฐ์ ์ฌ์ฉ
<jsp:include page="..." />
๋์ ํฌํจ, ์คํ ์ ๋ฉ์๋ ํธ์ถ ๋ฐฉ์์ผ๋ก ํฌํจ
์์ฃผ ๋ฐ๋๋ ๋ฉ๋ด์ ์ฌ์ฉ
์ฐจ์ด๋ฅผ ๊ฐ์ฅ ํ์คํ ๋ณด๋ ค๋ฉด
JSP์ฉ .java ํ์ผ์ ๊ฐ์ด ์ด์ด๋ณด๋ ๊ฑฐ์์
EL๊ณผ JSTL์ ์ฐ๋ ์ด์

์คํฌ๋ฆฝํ๋ฆฟ <% %> ๊ฐ์ ์๋ฐ ๋ฌธ๋ฒ์
๋์์ด๋๋ ํ๋ก ํธ ๊ฐ๋ฐ์๊ฐ ๋ชป ์ฝ์ด์
์ ์ง๋ณด์์ฑ์ด ๋จ์ด์ ธ์
๊ทธ๋์ ๊ถ์ฅ๋๋ ๊ฒ EL + JSTL
EL์ Expression Language๋ก${ } ํํ์์ ์จ์
null์ด๋ฉด ๋น ๋ฌธ์์ด๋ก ์ถ๋ ฅํด์ค์ ๊น๋ํด์empty ์ฐ์ฐ์๋ก null๊ณผ ๋น ๋ฌธ์์ด์ ํ ๋ฒ์ ์ฒดํฌํ ์ ์์ด์
๊ทผ๋ฐ EL์๋ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ์ด ์์ด์
JSTL ํ๊ทธ๊ฐ ํ์ํด์
c:ifc:forEachc:choose/c:when/c:otherwise
else ํ๊ทธ๋ ๋ฐ๋ก ์๊ณ choose๋ก ํํํด์
์ธ์ โ ์ํ ์ ๋ณด ์ ์ง

HTTP๋ stateless ํ๋กํ ์ฝ์ด๋ผ
์๋ฒ๋ ์ง์ ์ ๋๊ตฌ๋ ๋ํํ๋์ง ๊ธฐ์ต ๋ชป ํด์
๊ทธ๋์ ์ํ ์ ๋ณด ์ ์ง ๊ธฐ์ ์ด ํ์ํด์
- ํด๋ผ์ด์ธํธ ์ฌ์ด๋๋ ์ฟ ํค
- ์๋ฒ ์ฌ์ด๋๋ ์ธ์
์ธ์
์ ํด๋ผ์ด์ธํธ๋ณ ์๋ฒ ์ฌ์ด๋ ๊ฐ์ฒด์์HttpSession ํ์
request.getSession()์ผ๋ก ์ป์ด์
setAttribute / getAttribute / removeAttribute
์ด ๋ฉ์๋๋ก ๊ฐ์ ๋ฃ๊ณ ๊บผ๋ด๊ณ ์ง์ธ ์ ์์ด์
์ฅ๋ฐ๊ตฌ๋, ๋ก๊ทธ์ธ ์ ๋ณด ๊ฐ์ ๊ฑฐ
์ธ์
์ ์ ์ฅํด์ ํด๋ผ์ด์ธํธ๋ณ๋ก ์ ์งํด์
์๋ต์ ๊ฐ๋ณ๊ฒ

๋ง์ง๋ง์ผ๋ก ์ธ์ ๊น์๋ ๊ฒ
์๋ต์ ๊ฐ๋ณ๊ฒ ๋ง๋๋ ๋ฐฉ์์ด์์
๋ก๊ทธ์ธ ์ฑ๊ณต/์คํจ ๋ฉ์์ง๋ฅผ ๊ตณ์ด ๋ค ์๋ตํ์ง ๋ง๊ณ
์ํ ์ฝ๋๊ฐ๋ง ์๋ตํ๋ ๊ฑฐ์์
- 200 โ ์ฑ๊ณต
- 201 โ ์์ฑ ์ฑ๊ณต (๊ฐ์ ์ฑ๊ณต ์)
- 400 โ Bad Request (์๋ชป๋ ์ ๋ ฅ)
- 401 โ ์ธ์ฆ ์คํจ
์ฝ๋๋ง์ผ๋ก๋ ์๋ฏธ๊ฐ ์ถฉ๋ถํ ์ ๋ฌ๋๊ณ
๋คํธ์ํฌ ๋น์ฉ๋ ์ค์ด์ ํผํฌ๋จผ์ค๊ฐ ์ฌ๋ผ๊ฐ์
์ค๋ TIL์ ์ฌ๊ธฐ๊น์ง!
JSP/Servlet์ ๋ฐฑ์๋ ๊ธฐ๋ณธ๊ธฐ๋ผ
์คํ๋ง ๊ฐ๊ธฐ ์ ์ ์ ์ก๊ณ ๊ฐ์ผ๊ฒ ์ด์
๋ค๋ค ํ์ดํ