Java

2024.07.03 JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ JSP(Java Server Pages)๋ž€?

์ •ํ›ˆ5 2024. 7. 3. 09:14
๐Ÿ’กํ•™์Šต ๋ชฉํ‘œ

1. JSP์˜ ์ •์˜์™€ ์—ญํ• ์„ ์ดํ•ดํ•œ๋‹ค.
2. JSP์˜ ์žฅ์ ๊ณผ ํŠน์ง•์„ ํŒŒ์•…ํ•œ๋‹ค.
3. JSP์™€ ๊ด€๋ จ๋œ ๊ธฐ๋ณธ ์šฉ์–ด๋ฅผ ์ตํžŒ๋‹ค.

 

 

 

JSP๋ž€ ๋ญ˜๊นŒ?

Java Server Pages (JSP)๋Š” ๋™์ ์ธ ์›น ์ฝ˜ํ…์ธ ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„ ์ธก ๊ธฐ์ˆ ์ด๋‹ค.
JSP๋Š” HTML ํŽ˜์ด์ง€ ๋‚ด์— Java ์ฝ”๋“œ๋ฅผ ํฌํ•จ์‹œ์ผœ ์›น ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋œ ํ›„, ํด๋ผ์ด์–ธํŠธ์— HTML์„ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ์ข€ ๋” ์ž์„ธํžˆ ๋งํ•˜์ž๋ฉด JSP(Java Server Pages)๋Š” ์ž๋ฐ” ์„œ๋ฒ„ ํŽ˜์ด์ง€์˜ ์•ฝ์ž๋กœ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„
์œ„ํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๊ธฐ์ˆ (Server-Side Rendering) ์ž…๋‹ˆ๋‹ค.
JSP๋Š” HTML, CSS, JavaScript ๋“ฑ์˜ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์–ธ์–ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด ๋™์ ์ธ ์›น ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ
์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ HTML ์ฝ”๋“œ์— ์‚ฝ์ž…ํ•˜์—ฌ ์›น ์„œ๋ฒ„์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋Š” ํด๋ผ์ด์–ธํŠธ์˜
์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

SSR์ด๋ž€?

 Server-Side Rendering(์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง)์˜ ์•ฝ์–ด์ž…๋‹ˆ๋‹ค.
SSR์€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์›น ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์ „์— ์„œ๋ฒ„์—์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜์—ฌ HTML์„ ์ƒ์„ฑํ•˜๋Š” ์›น ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•๋ก ์€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ •์ ์ธ HTML์„ ๋จผ์ € ์ œ๊ณตํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์ธ Client-Side Rendering(CSR)๊ณผ ๋Œ€๋น„๋ฉ๋‹ˆ๋‹ค

 

Servlet vs JSP  

(๋™์ž‘๋ฐฉ์‹ ์ค‘์š”)

 

 

JSP ์—ญํ• 

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋œ HTML์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์˜ ์ค‘๊ฐ„ ์—ญํ• ์„ ํ•˜๋ฉฐ, HTML๊ณผ ๊ฐ™์€ ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ์™€ Java์™€ ๊ฐ™์€ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ๋ฅผ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

JSP์˜ ๊ธฐ๋ณธ ๋™์ž‘ ์›๋ฆฌ (Java Server Pages )

ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ: ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)๊ฐ€ JSP ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•œ๋‹ค.

์„œ๋ฒ„ ์ฒ˜๋ฆฌ: ์›น ์„œ๋ฒ„(์•„ํŒŒ์น˜ ํ†ฐ์บฃ)๊ฐ€ JSP ํŽ˜์ด์ง€๋ฅผ ์ฐพ์•„ Java ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ์ปดํŒŒ์ผํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค.

์‘๋‹ต ์ƒ์„ฑ: JSP ํŽ˜์ด์ง€๊ฐ€ ์‹คํ–‰๋˜์–ด ๋™์ ์ธ HTML์„ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†กํ•œ๋‹ค.

 

์ƒ˜ํ”Œ ์ฝ”๋“œ ํ™•์ธ 1

%@ page contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
    <title>My First JSP Page</title>
</head>
<body>
    <h1>Hello, JSP!</h1>
    <%
        String message = "Welcome to Java Server Pages!";
        out.println("<p>" + message + "</p>");
    %>
</body>
</html>

 

 

์ƒ˜ํ”Œ ์ฝ”๋“œ ํ™•์ธ 2

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JSP Example</title>
</head>
<body>
    <h1>JSP Example</h1>
    
    <hr>
    
    <%-- JSP ๋””๋ ‰ํ‹ฐ๋ธŒ : ํŽ˜์ด์ง€ ์†์„ฑ ์„ค์ • --%>
    <%@ page import="java.util.Date" %>
    <%@ page import="java.text.SimpleDateFormat" %>
    
    <%-- JSP ์Šคํฌ๋ฆฝํŠธ๋ฆฟ : Java ์ฝ”๋“œ ์˜์—ญ --%>
    <%
        // ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์˜ค๊ธฐ
        Date now = new Date();
        
        // ๋‚ ์งœ ํฌ๋งท ์ง€์ •
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = sdf.format(now);
    %>
    
    <%-- HTML๊ณผ ํ•จ๊ป˜ JSP ํ‘œํ˜„์‹ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ ์งœ ์ถœ๋ ฅ --%>
    <p>ํ˜„์žฌ ์‹œ๊ฐ„: <%= formattedDate %></p>
    
    <%-- JSP ์„ ์–ธ๋ฌธ : ๋ณ€์ˆ˜ ์„ ์–ธ --%>
    <%!
        int number = 10;
        String message = "Hello, JSP!";
    %>
    
    <%-- HTML๊ณผ ํ•จ๊ป˜ JSP ํ‘œํ˜„์‹ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ์ถœ๋ ฅ --%>
    <p>์ˆซ์ž: <%= number %></p>
    <p>๋ฉ”์‹œ์ง€: <%= message %></p>
    
    <%-- JSP ์ฃผ์„ : HTML ์ฃผ์„ --%>
    <!-- ์ด ๋ถ€๋ถ„์€ HTML ์ฃผ์„์ž…๋‹ˆ๋‹ค. JSP์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -->
    
    <%-- JSP ์•ก์…˜ ํƒœ๊ทธ : Java ์ฝ”๋“œ ์‹คํ–‰ ๋ฐ ์ œ์–ด --%>
    <%-- if-else ๊ตฌ๋ฌธ --%>
    <% if (number > 5) { %>
        <p>์ˆซ์ž๊ฐ€ 5๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.</p>
    <% } else { %>
        <p>์ˆซ์ž๊ฐ€ 5๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.</p>
    <% } %>
    
     <%-- JSP ์•ก์…˜ ํƒœ๊ทธ : include ์ง€์‹œ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค๋ฅธ JSP ํŒŒ์ผ ํฌํ•จ --%>
    <%-- <%@ include file="included.jsp" %> -->
    
    
    <%-- JSP ํ‘œํ˜„์–ธ์–ด(EL) : ๋ณ€์ˆ˜ ๊ฐ’ ์ถœ๋ ฅ --%>
    <p>EL ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•œ ์ˆซ์ž: ${10}</p>
    <p>EL ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•œ ๋ฉ”์‹œ์ง€: ${"Hello, JSP!"}</p>
</body>
</html>

 

JSP ์ฒ˜๋ฆฌ ๊ณผ์ •

์›น ๋ธŒ๋ผ์šฐ์ €์— JSP ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” URL์„ ์ž…๋ ฅํ•˜๋ฉด, ํ†ฐ์บฃ ์„œ๋ฒ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ JSP ํŽ˜์ด์ง€๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

 

JSP๋ฅผ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๋ง์€ ๊ณง JSP ํŽ˜์ด์ง€๋ฅผ ์ปดํŒŒ์ผํ•œ ๊ฒฐ๊ณผ์ธ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ์‹คํ–‰ํ•œ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋œ๋‹ค.