상세 컨텐츠

본문 제목

[JSP] JSP(Java Server Pages)란?

JAVA/JSP 프로그래밍

by 미로910 2024. 7. 5. 14:16

본문

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 페이지를 컴파일한 결과인 서블릿 클래스를 실행한다는 의미가 된다.

관련글 더보기