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의 기본 동작 원리
클라이언트 요청: 클라이언트(웹 브라우저)가 JSP 페이지에 접근한다.
서버 처리: 웹 서버(아파치 톰캣)가 JSP 페이지를 찾아 Java 서블릿으로 변환한 후 컴파일하여 실행한다.
응답 생성: JSP 페이지가 실행되어 동적인 HTML을 생성하고, 이를 클라이언트에게 전송한다.
%@ 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>
<%@ 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 > JSP 프로그래밍' 카테고리의 다른 글
[JSP] JSP 기초 문법 (0) | 2024.07.05 |
---|---|
[JSP] JSP 라이프사이클 (0) | 2024.07.05 |
[JSP] 서블릿 필터와 리스너란 뭘까? (0) | 2024.07.04 |
[JSP] (잠깐!) server.xml과 context.xml 그리고 web.xml 파일 이란? (0) | 2024.07.04 |
[JSP] 서블릿과 데이터베이스 연동 (0) | 2024.07.04 |