๐Ÿ“Œ JSP ์š”์ฒญ ์ฒ˜๋ฆฌ์™€ JavaScript ์—ฐ๋™ ์™„๋ฒฝ ์ •๋ฆฌ (GET, POST, Request)

My Pale Blue Dotยท2025๋…„ 4์›” 1์ผ
0

JSP/SERVLET

๋ชฉ๋ก ๋ณด๊ธฐ
2/25
post-thumbnail

๐Ÿ“… ๋‚ ์งœ

2025-04-01


๐Ÿ“ ํ•™์Šต ๋‚ด์šฉ

โœ… ๊ฐœ๋… 1: ์š”์ฒญ ๋ฐฉ์‹(GET/POST) ๊ฐœ์š”

  • HTML์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„(JSP)๋กœ ์ „์†กํ•  ๋•Œ, form ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉ
  • form ํƒœ๊ทธ์˜ method ์†์„ฑ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง
๋ฐฉ์‹ํŠน์ง•๋ฐ์ดํ„ฐ ์ „์†ก ์œ„์น˜๋ณด์•ˆ์„ฑ์šฉ๋„
GET๊ธฐ๋ณธ ๋ฐฉ์‹URL์— ์ฟผ๋ฆฌ์ŠคํŠธ๋ง๋‚ฎ์Œ์กฐํšŒ
POST๋ณด์•ˆ ๊ณ ๋ คHTTP Body๋†’์Œ๋กœ๊ทธ์ธ, ๋“ฑ๋ก

โœ… ๊ฐœ๋… 2: JSP์—์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

  • request.getParameter("name")์„ ์‚ฌ์šฉํ•ด HTML form์—์„œ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์Œ
  • POST ๋ฐฉ์‹์ผ ๊ฒฝ์šฐ, ํ•œ๊ธ€ ๊นจ์ง ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด request.setCharacterEncoding("UTF-8")์„ ๋จผ์ € ํ˜ธ์ถœํ•ด์•ผ ํ•จ

โœ… ๊ฐœ๋… 3: JavaScript์™€ JSP ์—ฐ๋™

  • JSP โ†’ JavaScript: JSP ๋ณ€์ˆ˜ ๊ฐ’์„ JS ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ
  • JavaScript โ†’ JSP: JS์—์„œ JSP๋กœ URL ์ฟผ๋ฆฌ์ŠคํŠธ๋ง ๋ฐฉ์‹์œผ๋กœ ๊ฐ’ ์ „๋‹ฌ ๊ฐ€๋Šฅ

1๏ธโƒฃ HTML โ†’ JSP ์š”์ฒญ ํ๋ฆ„ (GET ๋ฐฉ์‹)

๐Ÿ“„ 01Request_Get.html (์‚ฌ์šฉ์ž ์ž…๋ ฅ โ†’ JSP ์ „์†ก)

<form action="./01Request_Process.jsp" method="get">
  <!-- ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ username, password, ์ƒ‰์ƒ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ -->
  <input type="text" name="username" /><br/>
  <input type="text" name="password"/><br/>
  <input type="text" name="bgcolor"/><br/>
  <button>์ „์†ก</button>
</form>

โžก๏ธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ž…๋ ฅ๊ฐ’๋“ค์ด URL์— ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์œผ๋กœ ํฌํ•จ๋˜์–ด

01Request_Process.jsp ํŒŒ์ผ๋กœ ์ „์†ก๋จ.


๐Ÿ“„ 01Request_Process.jsp (๋ฐ์ดํ„ฐ ์ˆ˜์‹  ํ›„ ์ถœ๋ ฅ)

<%
  // URL์„ ํ†ตํ•ด ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ JSP์—์„œ ๋ฐ›์•„์˜ด
  String username = request.getParameter("username");
  String password = request.getParameter("password");
  String bgcolor = request.getParameter("bgcolor");
%>

<!-- ๋ฐ›์€ ์ •๋ณด๋ฅผ HTML๋กœ ์ถœ๋ ฅ -->
<body style="background-color: <%= bgcolor %>">
  <h2>์•ˆ๋…•ํ•˜์„ธ์š”, <%= username %>๋‹˜!</h2>
  <p>๋‹น์‹ ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” <%= password %> ์ž…๋‹ˆ๋‹ค.</p>
</body>

๐Ÿ” ํ๋ฆ„ ์š”์•ฝ

  1. ์‚ฌ์šฉ์ž๊ฐ€ HTML form์— ์ž…๋ ฅ
  2. "์ „์†ก" ํด๋ฆญ ์‹œ GET ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก
  3. JSP์—์„œ request.getParameter()๋กœ ๊ฐ’ ๋ฐ›์•„ ์ถœ๋ ฅ
  4. ๋ฐฐ๊ฒฝ์ƒ‰์€ bgcolor ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”๋€œ

2๏ธโƒฃ HTML โ†’ JSP ์š”์ฒญ ํ๋ฆ„ (POST ๋ฐฉ์‹)

๐Ÿ“„ 02Request_Post.html

<form action="./02Request_Process.jsp" method="post">
  <!-- ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ (POST ๋ฐฉ์‹์€ URL์— ํ‘œ์‹œ ์•ˆ๋จ) -->
  <input type="text" name="username" /><br/>
  <input type="text" name="password"/><br/>
  <input type="text" name="bgcolor"/><br/>
  <button>์ „์†ก</button>
</form>

๐Ÿ“„ 02Request_Process.jsp

<%
  // POST ๋ฐฉ์‹์€ ํ•œ๊ธ€ ๊นจ์ง์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌ ํ•„์ˆ˜
  request.setCharacterEncoding("UTF-8");

  // ์ „๋‹ฌ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ๋ฐ›์Œ
  String username = request.getParameter("username");
  String password = request.getParameter("password");
  String bgcolor = request.getParameter("bgcolor");
%>

<body style="background-color: <%= bgcolor %>">
  <h2>POST ๋ฐฉ์‹: <%= username %>๋‹˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!</h2>
  <p>๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” <%= password %> ์ž…๋‹ˆ๋‹ค.</p>
</body>

3๏ธโƒฃ JSP โ†’ JavaScript ๊ฐ’ ์ „๋‹ฌ

๐Ÿ“„ 03JSP_TO_JS.jsp

<%
  String username = request.getParameter("username");
%>

<script>
  // JSP์—์„œ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์„ JS ๋ณ€์ˆ˜์— ๋„ฃ๊ธฐ
  let user = "<%= username %>";
  alert("JS์—์„œ ๋ฐ›์€ ์‚ฌ์šฉ์ž ์ด๋ฆ„: " + user);
</script>

4๏ธโƒฃ JavaScript โ†’ JSP ๊ฐ’ ์ „๋‹ฌ

๐Ÿ“„ 04JS_TO_JSP.jsp

<!-- JS์—์„œ URL๋กœ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์„ ๋ถ™์—ฌ JSP๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก -->
<button onclick="location.href='04JS_TO_JSP.jsp?user=admin'">JSP๋กœ ์ „์†ก</button>

๐Ÿ“„ JSP์—์„œ ๋ฐ›๋Š” ์ชฝ

<%
  String user = request.getParameter("user");
%>
<p>์ „๋‹ฌ๋œ ์‚ฌ์šฉ์ž: <%= user %></p>

5๏ธโƒฃ ์‹ค์Šต ์˜ˆ์ œ: ๊ตฌ๊ตฌ๋‹จ ์ถœ๋ ฅ (์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ธฐ๋ฐ˜)

โœ… HTML + JSP ํ†ตํ•ฉ ์˜ˆ์ œ

<form method="get">
  ๋‹จ: <input type="number" name="dan" min="1" max="9" required>
  <input type="submit" value="๊ตฌ๊ตฌ๋‹จ ์ถœ๋ ฅ">
</form>

<%
  // ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜์‹ 
  String danStr = request.getParameter("dan");

  // ๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ ์ฒ˜๋ฆฌ
  if (danStr != null) {
    try {
      int dan = Integer.parseInt(danStr);
%>
      <h3><%= dan %>๋‹จ ์ถœ๋ ฅ</h3>
      <table border="1" cellpadding="10">
        <tbody>
          <% for (int i = 1; i <= 9; i++) { %>
            <tr>
              <td><%= dan %> x <%= i %> = <%= dan * i %></td>
            </tr>
          <% } %>
        </tbody>
      </table>
<%
    } catch (NumberFormatException e) {
%>
      <p style="color:red;">์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜์„ธ์š”!</p>
<%
    }
  }
%>

๐Ÿ”น ์ถœ๋ ฅ ์˜ˆ์‹œ (๋‹จ: 5)

5๋‹จ ์ถœ๋ ฅ


5 x 1 = 5


5 x 2 = 10


5 x 3 = 15


5 x 4 = 20


5 x 5 = 25


5 x 6 = 30


5 x 7 = 35


5 x 8 = 40


5 x 9 = 45



๐Ÿ”ฅ ์ •๋ฆฌ ์š”์•ฝ

ํ•ญ๋ชฉ๋‚ด์šฉ
์š”์ฒญ ์ฒ˜๋ฆฌrequest.getParameter("name")๋กœ ๊ฐ’ ์ˆ˜์‹ 
์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌPOST ๋ฐฉ์‹์—์„œ๋Š” request.setCharacterEncoding("UTF-8") ํ•„์ˆ˜
GET vs POSTGET์€ URL ๋…ธ์ถœ / POST๋Š” ๋ณด์•ˆ ๊ณ ๋ ค
JSP โ†” JS ์—ฐ๋™<%= ๊ฐ’ %>๋กœ JSP ๋ฐ์ดํ„ฐ๋ฅผ JS์— ๋„˜๊ธธ ์ˆ˜ ์žˆ์Œ
๋ฐ์ดํ„ฐ ํ๋ฆ„HTML โ†’ JSP, JSP โ†’ JS, JS โ†’ JSP๊นŒ์ง€ ๊ฐ€๋Šฅ

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ

  • W3Schools - JSP Syntax
  • ์‹ค์Šต ํŒŒ์ผ: 01Request_Get.html, 02Request_Post.html, JSP_TO_JS.jsp ๋“ฑ

๋А๋‚€ ์ 

๋‹จ์ˆœํžˆ ํผ์—์„œ ๊ฐ’์„ ๋„˜๊ธฐ๊ณ  ์ถœ๋ ฅํ•˜๋Š” ์ˆ˜์ค€์„ ๋„˜์–ด์„œ,

"๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ๋ฅด๊ณ , ์–ด๋””์—์„œ ์ฒ˜๋ฆฌ๋˜๊ณ  ์ถœ๋ ฅ๋˜๋Š”์ง€"๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์•ž์œผ๋กœ๋Š” ์ด ๊ธฐ๋ฐ˜ ์œ„์— ์„ธ์…˜, ์ฟ ํ‚ค, MVC ๊ตฌ์กฐ๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.


์š”์•ฝ (Summary)

  • JSP ์š”์ฒญ ํ๋ฆ„์€ ํผ ์ž…๋ ฅ โ†’ JSP ์ฒ˜๋ฆฌ โ†’ HTML ์ถœ๋ ฅ
  • ๊ฐ ๋‹จ๊ณ„์˜ ์ฝ”๋“œ ํ๋ฆ„๊ณผ ์—ญํ• ์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ
  • ์ด์ œ๋Š” ์ž…๋ ฅ/์ถœ๋ ฅ/์ „๋‹ฌ/์ฒ˜๋ฆฌ์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณด์ธ๋‹ค!

profile
Here, My Pale Blue.๐ŸŒ

0๊ฐœ์˜ ๋Œ“๊ธ€