JSP에서 JSTL 표준 태그 라이브러리 설정 및 사용 방법
이번 글에서는 JSP(JavaServer Pages)에서 중요한 역할을 하는 JSTL(JavaServer Pages Standard Tag Library)에 대해 알아보고, 이를 프로젝트에 설정하고 사용하는 방법을 설명합니다. JSTL의 기본 개념과 필요성을 이해한 후, 라이브러리를 프로젝트에 추가하고, JSP에서 사용하는 방법에 대해 알아봅니다.
1. JSTL 개요 및 주요 기능
1. JSTL이란? JSTL(JavaServer Pages Standard Tag Library)은 JSP 페이지에서 반복문, 조건문, 데이터 포맷팅 등을 쉽게 처리할 수 있도록 해주는 표준 태그 라이브러리입니다. 이를 통해 자바 코드를 줄이고, 더 간결하고 유지보수하기 쉬운 코드를 작성할 수 있습니다.
2. JSTL의 주요 기능: JSTL은 다음과 같은 기능을 제공합니다.
- 코어 태그 (Core Tag): 흐름 제어(조건문, 반복문), 변수 관리, URL 처리 등을 위한 태그.
- 포맷 태그 (Format Tag): 숫자, 날짜 포맷팅, 로케일 관리, 메시지 번들 사용.
- 함수 태그 (Function Tag): 문자열 처리, 컬렉션 처리 등을 위한 함수.
- XML 태그 (XML Tag): XML 데이터 파싱 및 처리.
- SQL 태그 (SQL Tag): 데이터베이스 접근 및 쿼리 실행.
2. JSTL 라이브러리 다운로드 및 프로젝트에 추가하기
1. JSTL 라이브러리 다운로드
JSTL을 사용하기 위해 jstl.jar
파일을 다운로드하여 프로젝트에 추가해야 합니다. 아래 링크에서 jstl.jar
파일을 다운로드할 수 있습니다.
▼ jstl-1.2.jar 파일을 다운로드

2. 다운로드한 jstl-1.2.jar
파일을 생성한 웹 프로젝트의 WebContent/WEB-INF/lib
폴더에 추가합니다.

3. JSTL 태그 사용 설정
JSTL 태그 라이브러리 선언
JSTL을 JSP 페이지에서 사용하기 위해서는 해당 태그 라이브러리를 선언해야 합니다. 선언 방법은 다음과 같습니다.
- 코어 라이브러리 선언:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- 포맷 라이브러리 선언:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
- 함수 라이브러리 선언:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
- XML 라이브러리 선언:
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
- SQL 라이브러리 선언:
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
4.기본 사용 예제
아래는 JSTL의 <c:forEach>
태그를 사용하지 않고, 자바 코드로 반복문을 구현한 예제입니다. 이를 통해 JSTL을 사용했을 때 코드가 얼마나 간결해지는지 비교할 수 있습니다.
1. 자바 코드로 반복문 구현
<%@ page contentType="text/html; charset=UTF-8" %>
<%
// 배열을 생성하여 request 스코프에 저장
String[] fruitsArray = {"Apple", "Banana", "Cherry", "Date"};
%>
<html>
<head>
<title>JSP For Loop Example</title>
</head>
<body>
<h1>JSP For Loop Example</h1>
<ul>
<% for (int i = 0; i < fruitsArray.length; i++) { %>
<li><%= fruitsArray[i] %></li>
<% } %>
</ul>
</body>
</html>
2. JSTL의 <c:forEach> 태그를 사용한 경우
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
// 배열을 생성하여 request 스코프에 저장
String[] fruitsArray = {"Apple", "Banana", "Cherry", "Date"};
request.setAttribute("fruits", fruitsArray);
%>
<html>
<head>
<title>JSTL ForEach Example</title>
</head>
<body>
<h1>JSTL ForEach Example</h1>
<ul>
<c:forEach var="fruit" items="${fruits}">
<li>${fruit}</li>
</c:forEach>
</ul>
</body>
</html>
▼ 실행 결과

비교:
- 자바 코드로 반복문을 구현한 경우: JSP 페이지에 자바 코드를 삽입해야 하므로 코드가 복잡해지고, HTML과 자바 코드가 혼합되어 가독성이 떨어집니다.
- JSTL
<c:forEach>
태그를 사용한 경우: 코드가 훨씬 간결하고, HTML과 JSP 태그만 사용하여 로직을 처리할 수 있어 가독성이 높아집니다.
JSTL을 사용하면 자바 코드 삽입을 최소화하여 유지보수성과 가독성을 높일 수 있다는 점에서 큰 장점을 제공합니다.
☞ 다음 글에서는 JSTL 코어 태그의 주요 기능을 살펴봅니다. 조건문 처리를 위한 <c:if>
, <c:choose>
태그, 반복문 처리를 위한 <c:forEach>
태그, 변수 관리를 위한 <c:set>
태그, 그리고 URL 처리 및 리다이렉트를 위한 <c:import>
와 <c:redirect>
태그에 대해 알아보겠습니다.
관련 이전 게시글
- JSP 기본 문법: 디렉티브, 스크립틀릿, 표현식, 선언문
- JSP 조건문 및 반복문 사용법
- JSP 내장 객체 사용법: request와 response
- JSP EL(Expression Language) 활용하기: 기본 문법과 예제
- JSP 액션 태그: JavaBeans와 useBean 사용법
이 글이 도움이 되셨다면 공유 부탁 드립니다.