** ๐Ÿ“Œ JSP ๋‚ด์žฅ ๊ฐ์ฒด ์™„์ „ ์ •๋ฆฌ **

JSP์—์„œ ์ž๋™์œผ๋กœ ์ œ๊ณต๋˜๋Š” 9๊ฐ€์ง€ ๊ฐ์ฒด ์„ค๋ช… + ์‹ค์ „ ์˜ˆ์ œ + ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„


๐Ÿงฉ ๋ชฉ์ฐจ

  1. JSP ๋‚ด์žฅ ๊ฐ์ฒด๋ž€?
  2. JSP 9๋Œ€ ๋‚ด์žฅ ๊ฐ์ฒด ์ •๋ฆฌ
  3. ๋‚ด์žฅ ๊ฐ์ฒด๋ณ„ ์‹ค์ „ ์˜ˆ์ œ
  4. ๋ฉด์ ‘ ์งˆ๋ฌธ ๋Œ€๋น„ ์š”์•ฝ
  5. ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ & Notion ์ž‘์„ฑ ํŒ

โœ… 1. JSP ๋‚ด์žฅ ๊ฐ์ฒด๋ž€?

๊ฐœ๋… ์„ค๋ช…
์ •์˜ JSP์—์„œ ๋ณ„๋„ ์„ ์–ธ ์—†์ด ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Java ๊ฐ์ฒด๋“ค
ํŠน์ง• JSP ํŽ˜์ด์ง€๊ฐ€ Servlet์œผ๋กœ ๋ณ€ํ™˜๋  ๋•Œ ์ž๋™ ์ƒ์„ฑ๋จ
๋ชฉ์  ์š”์ฒญ/์‘๋‹ต/์„ธ์…˜/์ถœ๋ ฅ ๋“ฑ ์›น ์ฒ˜๋ฆฌ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ

โœ… 2. JSP์˜ 9๋Œ€ ๋‚ด์žฅ ๊ฐ์ฒด ๐Ÿงฐ

๊ฐ์ฒด ์ด๋ฆ„ ์„ค๋ช… ์ฃผ์š” ์šฉ๋„
request ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์ •๋ณด ํผ ์ž…๋ ฅ๊ฐ’ ๋ฐ›๊ธฐ
response ์„œ๋ฒ„ ์‘๋‹ต ์ฒ˜๋ฆฌ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ, ์‘๋‹ต ์„ค์ •
out ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ HTML ์ถœ๋ ฅ
session ์‚ฌ์šฉ์ž ์„ธ์…˜ ์ •๋ณด ๋กœ๊ทธ์ธ ์œ ์ง€, ์‚ฌ์šฉ์ž ์ƒํƒœ ์ €์žฅ
application ์ „์—ญ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ €์žฅ์†Œ ์ „์ฒด ์‚ฌ์šฉ์ž ๊ณต์œ  ๋ฐ์ดํ„ฐ
config JSP ์„ค์ • ์ •๋ณด JSP ํ™˜๊ฒฝ ์ ‘๊ทผ
pageContext ํŽ˜์ด์ง€ ๋ฒ”์œ„์˜ ๊ฐ์ฒด ๊ด€๋ฆฌ include/forward ๋“ฑ
page ํ˜„์žฌ JSP ํŽ˜์ด์ง€์˜ this ๊ฐ์ฒด ํ˜„์žฌ JSP ์ธ์Šคํ„ด์Šค ์ฐธ์กฐ
exception ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ์˜ˆ์™ธ ์ •๋ณด ์—๋Ÿฌ ์ฒ˜๋ฆฌ ์ „์šฉ (isErrorPage=true ์ผ ๋•Œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

โœ… 3. ๋‚ด์žฅ ๊ฐ์ฒด๋ณ„ ์‹ค์ „ ์˜ˆ์ œ ๐ŸŽฏ


๐Ÿ”น 1. request ๊ฐ์ฒด โ€“ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ›๊ธฐ

<form method="post" action="hello.jsp">
  ์ด๋ฆ„: <input type="text" name="name" />
  <input type="submit" value="์ „์†ก" />
</form>
<%
// hello.jsp
String name = request.getParameter("name");
%>
<p>์•ˆ๋…•ํ•˜์„ธ์š”, <%= name %>๋‹˜!</p>

๐Ÿ”น 2. response ๊ฐ์ฒด โ€“ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ฒ˜๋ฆฌ

<%
  response.sendRedirect("welcome.jsp");
%>

๐Ÿ”น 3. out ๊ฐ์ฒด โ€“ HTML ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

<%
  out.println("<h2>JSP ์ถœ๋ ฅ ํ…Œ์ŠคํŠธ</h2>");
%>

๐Ÿ”น 4. session ๊ฐ์ฒด โ€“ ๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€

<%
// ๋กœ๊ทธ์ธ ์‹œ ์„ธ์…˜ ์ €์žฅ
session.setAttribute("userId", "hong123");
%>

<!-- ๋‹ค๋ฅธ ํŽ˜์ด์ง€์—์„œ ์„ธ์…˜ ๊ฐ€์ ธ์˜ค๊ธฐ -->
<%
  String id = (String) session.getAttribute("userId");
%>
<p>๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž ID: <%= id %></p>

๐Ÿ”น 5. application ๊ฐ์ฒด โ€“ ๋ชจ๋“  ์‚ฌ์šฉ์ž ๊ณต์œ  ๋ฐ์ดํ„ฐ

<%
// ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒ”์œ„ ๋ฐ์ดํ„ฐ ์ €์žฅ
application.setAttribute("siteName", "My JSP Site");
%>

<%
  String name = (String) application.getAttribute("siteName");
%>
<p>์‚ฌ์ดํŠธ ์ด๋ฆ„: <%= name %></p>

๐Ÿ”น 6. config ๊ฐ์ฒด โ€“ JSP ํ™˜๊ฒฝ ์ •๋ณด

<%
  String jspName = config.getServletName();
%>
<p>์ด JSP์˜ ์ด๋ฆ„์€ <%= jspName %> ์ž…๋‹ˆ๋‹ค.</p>

๐Ÿ”น 7. pageContext ๊ฐ์ฒด โ€“ ๋ฒ”์œ„ ์ œ์–ด & include

<jsp:include page="header.jsp" />
<%
  pageContext.setAttribute("msg", "Hello Page");
  String msg = (String) pageContext.getAttribute("msg");
%>
<p><%= msg %></p>

๐Ÿ”น 8. page ๊ฐ์ฒด โ€“ ํ˜„์žฌ JSP์˜ this

<%
  out.println("page ๊ฐ์ฒด ํด๋ž˜์Šค: " + page.getClass().getName());
%>

๐Ÿ”น 9. exception ๊ฐ์ฒด โ€“ ์—๋Ÿฌ ํŽ˜์ด์ง€ ์ „์šฉ

<%@ page isErrorPage="true" %>
<%
  out.println("์—๋Ÿฌ ๋ฐœ์ƒ: " + exception.getMessage());
%>

โœ… 4. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ํ•ต์‹ฌ ์งˆ๋ฌธ ์ •๋ฆฌ

์งˆ๋ฌธ ์š”์  ๋‹ต๋ณ€
JSP ๋‚ด์žฅ ๊ฐ์ฒด๋ž€? JSP์—์„œ ์ž๋™ ์ƒ์„ฑ๋˜์–ด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด
request ๊ฐ์ฒด์˜ ์—ญํ• ์€? ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ด
session vs application ์ฐจ์ด์ ? session์€ ์‚ฌ์šฉ์ž ๊ฐœ๋ณ„ ์ €์žฅ, application์€ ์ „์ฒด ์‚ฌ์šฉ์ž ๊ณต์œ 
exception ๊ฐ์ฒด๋Š” ์–ธ์ œ ์‚ฌ์šฉ? isErrorPage="true"์ธ ์—๋Ÿฌ JSP์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

โœ… 5. ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ ์ •๋ฆฌ ๐Ÿง