๐กํ์ต ๋ชฉํ
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 ํ์ด์ง๋ฅผ ์ปดํ์ผํ ๊ฒฐ๊ณผ์ธ ์๋ธ๋ฆฟ ํด๋์ค๋ฅผ ์คํํ๋ค๋ ์๋ฏธ๊ฐ ๋๋ค.
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 2024.07.03 JSP ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ JSP ๊ธฐ์ด ๋ฌธ๋ฒ (0) | 2024.07.03 |
|---|---|
| 2024.07.03 JSP ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ JSP ๋ผ์ดํ์ฌ์ดํด (0) | 2024.07.03 |
| 2024.07.03 dynamic Web Project์ web.xml ์ค๋ฅ ํด๊ฒฐ (0) | 2024.07.03 |
| 2024.07.02 CSS flexbox flex-wrap ์ดํดํ๊ธฐ (0) | 2024.07.02 |
| 2024.07.02 JSP ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ ์๋ธ๋ฆฟ ํํฐ์ ๋ฆฌ์ค๋๋ ๋ญ๊น? (0) | 2024.07.02 |