** ๐Ÿ“Œ 1-4. ํผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ (GET/POST ๋ฐฉ์‹ ์™„์ „ ์ •๋ฆฌ)**

JSP์—์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ›๋Š” ๋ฐฉ๋ฒ• + ์‹ค์ „ ์˜ˆ์ œ + ๊ธฐ์ˆ  ๋ฉด์ ‘ ์ •๋ฆฌ


๐Ÿงฉ ๋ชฉ์ฐจ

  1. HTML Form์ด๋ž€?
  2. GET๊ณผ POST ๋ฐฉ์‹ ์ฐจ์ด
  3. JSP์—์„œ ์ž…๋ ฅ๊ฐ’ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•
  4. ์‹ค์ „ ์˜ˆ์ œ (GET & POST)
  5. ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ถ”๊ฐ€ ํŒ
  6. ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ ์ •๋ฆฌ
  7. ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ & Notion ์ •๋ฆฌ ํŒ

โœ… 1. HTML Form์ด๋ž€?

๊ฐœ๋… ์„ค๋ช…
์ •์˜ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” HTML ์š”์†Œ
๋™์ž‘ method์— ๋”ฐ๋ผ GET ๋˜๋Š” POST ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„์— ์ „์†ก๋จ
์—ฐ๊ฒฐ ๋Œ€์ƒ action="JSP ๋˜๋Š” Servlet ํŒŒ์ผ๋ช…" ์œผ๋กœ ์ง€์ •
<form action="submit.jsp" method="post">
  ์ด๋ฆ„: <input type="text" name="name" />
  <input type="submit" value="์ „์†ก" />
</form>

โœ… 2. GET vs POST ์ฐจ์ด์ 

๊ตฌ๋ถ„ GET POST
์ „์†ก ๋ฐฉ์‹ URL์— ํŒŒ๋ผ๋ฏธํ„ฐ ํฌํ•จ ์š”์ฒญ ๋ฐ”๋””์— ์ˆจ๊ฒจ์„œ ์ „์†ก
๋ณด์•ˆ์„ฑ ๋‚ฎ์Œ (์ฃผ์†Œ์ฐฝ์— ๋…ธ์ถœ) ๋†’์Œ (URL์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ)
์šฉ๋Ÿ‰ ์ œํ•œ ์ ์Œ (~2KB ์ œํ•œ) ๋งŽ์Œ (ํŒŒ์ผ๋„ ๊ฐ€๋Šฅ)
์‚ฌ์šฉ ์šฉ๋„ ๊ฒ€์ƒ‰, ์กฐํšŒ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ๋“ฑ ๋ฏผ๊ฐํ•œ ์ •๋ณด

๐Ÿ’ก ์˜ˆ์‹œ ๋น„๊ต

GET  โ†’ /submit.jsp?name=ํ™๊ธธ๋™
POST โ†’ ์„œ๋ฒ„ ๋‚ด๋ถ€๋กœ ์ „์†ก๋˜๋ฉฐ URL์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ

โœ… 3. JSP์—์„œ ์ž…๋ ฅ๊ฐ’ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•

๐Ÿ“Œ ๊ณตํ†ต ์ฝ”๋“œ: request.getParameter("์ด๋ฆ„")

<%
  String name = request.getParameter("name");
%>
<p>์ž…๋ ฅํ•œ ์ด๋ฆ„: <%= name %></p>

โœ… 4. ์‹ค์ „ ์˜ˆ์ œ: GET & POST ๋ฐฉ์‹


๐ŸŸฆ [1] GET ๋ฐฉ์‹ ์˜ˆ์ œ

๐Ÿ“„ form.html

<form action="getTest.jsp" method="get">
  ์ด๋ฆ„: <input type="text" name="name" />
  <input type="submit" value="GET ์ „์†ก" />
</form>

๐Ÿ“„ getTest.jsp

<%
  String name = request.getParameter("name");
%>
<p>GET ๋ฐฉ์‹์œผ๋กœ ๋ฐ›์€ ์ด๋ฆ„: <%= name %></p>

๐Ÿง  URL์— ?name=ํ™๊ธธ๋™์ฒ˜๋Ÿผ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ถ™์–ด์„œ ์ „์†ก๋จ


๐ŸŸฆ [2] POST ๋ฐฉ์‹ ์˜ˆ์ œ

๐Ÿ“„ form.html

<form action="postTest.jsp" method="post">
  ์ด๋ฆ„: <input type="text" name="name" />
  <input type="submit" value="POST ์ „์†ก" />
</form>

๐Ÿ“„ postTest.jsp

<%
  String name = request.getParameter("name");
%>
<p>POST ๋ฐฉ์‹์œผ๋กœ ๋ฐ›์€ ์ด๋ฆ„: <%= name %></p>

๐Ÿง  URL์— ์•„๋ฌด ์ •๋ณด๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ , ๋ณด์•ˆ์„ฑ์ด ๋” ๋†’์Œ


โœ… 5. JavaScript + ์„œ๋ฒ„ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํŒ ๐Ÿ›ก๏ธ

๐Ÿ”ธ ํด๋ผ์ด์–ธํŠธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ (JS๋กœ ๋ฏธ๋ฆฌ ๊ฒ€์‚ฌ)

<script>
function validate() {
  const name = document.getElementById("name").value;
  if (name === "") {
    alert("์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”!");
    return false;
  }
}
</script>

<form onsubmit="return validate()" method="post" action="postTest.jsp">
  ์ด๋ฆ„: <input type="text" name="name" id="name" />
  <input type="submit" value="์ „์†ก" />
</form>

๐Ÿ”ธ ์„œ๋ฒ„ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ (JSP์—์„œ null ์ฒดํฌ)

<%
  String name = request.getParameter("name");
  if(name == null || name.trim().equals("")) {
    out.println("์ด๋ฆ„์€ ํ•„์ˆ˜ ์ž…๋ ฅ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค!");
  } else {
    out.println("์ž…๋ ฅ๋œ ์ด๋ฆ„: " + name);
  }
%>

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

์งˆ๋ฌธ ์š”์  ๋‹ต๋ณ€
GET vs POST ์ฐจ์ด๋Š”? GET์€ URL์— ํŒŒ๋ผ๋ฏธํ„ฐ, POST๋Š” ๋ณธ๋ฌธ์— ์ „์†ก
ํผ์—์„œ ์„œ๋ฒ„๋กœ ๊ฐ’ ์ „์†ก ๋ฐฉ๋ฒ•์€? method์— GET ๋˜๋Š” POST ์ง€์ •, action์— JSP ํŒŒ์ผ๋ช… ์ง€์ •
JSP์—์„œ ๊ฐ’ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•? request.getParameter("name") ์‚ฌ์šฉ
๋ณด์•ˆ์ด ๋” ๊ฐ•ํ•œ ๋ฐฉ์‹์€? POST (URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์Œ)

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