[Java JSP] JSP(JavaServer Pages)와 EL, JSTL

khj·2025년 2월 28일

Java

목록 보기
9/10
post-thumbnail

1. JSP(JavaServer Pages)란?

JSP(JavaServer Pages)는 서버에서 동적으로 HTML을 생성하는 기술로,
Java를 기반으로 웹 애플리케이션을 개발할 때 사용됩니다.
JSP는 기본적으로 Servlet(서블릿) 위에서 동작하며, HTML 코드와 Java 코드를 함께 작성할 수 있는 웹 기술입니다.

✅ JSP의 주요 특징

  • HTML과 Java를 함께 사용 가능
  • Servlet보다 코드 작성이 쉬움
  • JSP 파일이 최초 실행될 때 서블릿으로 변환됨
  • 세션 및 데이터 처리 기능 제공
  • EL(Expression Language), JSTL(JavaServer Pages Standard Tag Library)과 함께 사용 가능

2. JSP의 기본 구조

JSP 파일은 일반적인 HTML 코드에 Java 코드를 추가할 수 있습니다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>JSP 예제</title>
</head>
<body>
    <%
        String username = "홍길동";
    %>
    <p>안녕하세요, <%= username %> 님!</p>
</body>
</html>

✅ <% %> 내부에 Java 코드를 작성하여 동적으로 데이터를 처리할 수 있음

JSP의 주요 코드 유형

코드 유형 설명 예제
선언문 변수 및 메서드 선언 <%! int count = 0; %>
스크립트릿 실행할 Java 코드 <% count++; %>
표현식 값을 출력하는 코드 <%= count %>
지시어 JSP 페이지 설정 <%@ page contentType="text/html; charset=UTF-8" %>

3. JSP와 서블릿의 차이점

구분 JSP Servlet
확장자 .jsp .java
작성 방식 HTML 코드 안에 Java 코드 포함 Java 코드 안에 HTML 출력
가독성 HTML 중심이라 쉬움 Java 중심이라 코드가 길어질 수 있음
사용 목적 뷰(View) 역할 비즈니스 로직 처리

4. JSP에서 EL(Expression Language) 사용

EL(Expression Language)은 JSP에서 데이터를 출력할 때 자바 코드 없이 간단한 문법으로 표현할 수 있도록 제공되는 기능입니다.

✅ EL의 장점

  • 표현식을 간결하게 작성 가능
  • JSP에서 request, session 등의 데이터 접근이 쉬움
  • 자바 코드 없이 데이터 출력 가능

EL 사용 예시

<%
    request.setAttribute("name", "홍길동");
%>
<p>안녕하세요, ${name} 님!</p>

✅ 기존 <%= request.getAttribute("name") %> 방식보다 더 직관적이고 간결한 코드


5. JSP에서 JSTL(JavaServer Pages Standard Tag Library) 사용

JSTL은 JSP에서 자주 사용하는 기능을 태그로 제공하는 라이브러리입니다.

✅ JSTL의 장점

  • JSP에서 Java 코드(스크립트릿)를 줄이고 가독성 향상
  • 반복문, 조건문, 포맷팅 등의 기능을 제공
  • 코드 유지보수가 쉬워짐

JSTL 주요 기능

태그 설명 예제
c:set 변수 설정 <c:set var="username" value="홍길동" />
c:forEach 반복문 <c:forEach var="i" begin="1" end="5">
  <li>리스트 항목 ${i}</li>
</c:forEach>
c:if 조건문 <c:if test="${userAge >= 18}"> 성인입니다. </c:if>

6. JSP에서 세션 및 데이터 처리

JSP는 사용자의 데이터를 유지하기 위해 세션(Session) 을 활용할 수 있습니다.

✅ 세션에 데이터 저장 및 출력

<%
    session.setAttribute("loginUser", "홍길동");
%>
<p>로그인 사용자: ${sessionScope.loginUser}</p>

✅ session.setAttribute()를 사용하여 데이터 저장 후 EL로 출력 가능

profile
Spring, Django 개발 블로그

0개의 댓글