-
JSP - 코어태그 <c:out>와 <c:set>JSP 2024. 8. 30. 17:52반응형
<c:out>와 <c:set>
JSTL(JavaServer Pages Standard Tag Library)은 JSP(JavaServer Pages)에서 보다 간단하고 안전하게 HTML을 생성하고 데이터 처리를 할 수 있도록 도와주는 태그 라이브러리입니다. JSTL은 여러 가지 태그 라이브러리를 제공하지만, 여기에서는 가장 기본이 되는 코어(Core) 태그 중 두 가지인 <c:out>와 <c:set>에 대해 집중적으로 다뤄보겠습니다.
1. <c> 태그
<c:out> 태그는 JSP에서 표현 언어(EL)를 사용하여 데이터를 출력할 때 사용됩니다. 이 태그는 데이터 출력 시 HTML 특수 문자를 이스케이프(escape)하여 XSS(Cross-Site Scripting) 공격을 방지하는 데 매우 유용합니다.
주요 특징
- HTML 특수 문자 이스케이프: 예를 들어, &는 &, <는 <로 변환하여 출력합니다. 이를 통해 사용자가 입력한 값이 그대로 HTML로 렌더링되어 공격 벡터가 되지 않도록 합니다.
- 값이 없을 때 기본값 설정 가능: 출력하려는 값이 null일 경우, 기본값을 지정하여 출력할 수 있습니다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!-- 사용자 이름을 안전하게 출력 --> <c:out value="${user.name}" /> <!-- 사용자 나이를 출력하되, 값이 없으면 'N/A'를 출력 --> <c:out value="${user.age}" default="N/A" />
속성
- value: 출력하려는 값 (필수).
- default: 출력하려는 값이 null일 때 대신 출력할 기본값 (선택).
2. <c> 태그
<c:set> 태그는 JSP 페이지의 특정 스코프에 변수를 설정하거나 값을 저장할 때 사용됩니다. 이를 통해 JSP 페이지에서 데이터를 보다 체계적으로 관리하고, 다양한 스코프(page, request, session, application)에 걸쳐 데이터를 활용할 수 있습니다.
주요 특징
- 다양한 스코프 지원: page, request, session, application 스코프에 데이터를 설정할 수 있습니다. 이로 인해 JSP 페이지에서 변수를 필요에 따라 공유하거나 유지할 수 있습니다.
- 동적 데이터 할당: EL을 사용하여 변수를 설정할 수 있으며, 동적으로 값이 할당될 수 있습니다.
사용법
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!-- 'page' 스코프에 'message' 변수를 설정 --> <c:set var="message" value="Hello, JSP!" scope="page" /> <!-- 'session' 스코프에 'userName' 변수를 설정 --> <c:set var="userName" value="${param.name}" scope="session" />
속성
- var: 설정할 변수 이름 (필수).
- value: 변수에 할당할 값 (필수).
- scope: 변수가 속할 스코프 (선택, 기본값은 page). 가능한 값은 page, request, session, application.
3. JSTL 코어 태그의 다른 기능
JSTL 코어 태그는 <c:out>와 <c:set> 외에도 여러 가지 기능을 제공하여 JSP 페이지를 더욱 동적으로 만들 수 있습니다. 몇 가지 다른 중요한 코어 태그는 다음과 같습니다:
- <c>: 조건문을 실행할 때 사용합니다.
<c:if test="${user.age > 18}"> <p>성인입니다.</p> </c:if>
<c>, <c>, <c>: 여러 조건을 처리할 때 사용하는 다중 선택 구문입니다.
<c:choose> <c:when test="${user.age < 18}"> <p>미성년자입니다.</p> </c:when> <c:otherwise> <p>성인입니다.</p> </c:otherwise> </c:choose>
<c>: 컬렉션이나 배열을 반복 처리할 때 사용합니다.
<c:forEach var="item" items="${userList}"> <p>${item.name}</p> </c:forEach>
4. JSTL의 장점
- 간결한 코드: JSTL 태그를 사용하면 스크립트릿(<% %>)을 사용하지 않고도 로직을 처리할 수 있어 코드가 훨씬 간결해집니다.
- 유지보수성: 태그 기반의 구문은 HTML과 유사하여, JSP 페이지의 가독성과 유지보수성을 크게 향상시킵니다.
- 보안: c:out와 같은 태그는 기본적으로 XSS 방지 기능을 제공하므로, 보안이 강화된 JSP 페이지를 작성할 수 있습니다.
결론
<c:out>와 <c:set> 태그는 JSP에서 데이터를 처리하고 출력하는 데 필수적인 도구입니다. JSTL 코어 태그는 JSP 페이지의 복잡한 로직을 간단하게 표현할 수 있도록 도와주며, 보안과 유지보수성을 향상시키는 데 기여합니다. 이러한 태그를 효과적으로 사용하면 더 안전하고 효율적인 웹 애플리케이션을 개발할 수 있습니다.
반응형'JSP' 카테고리의 다른 글
JSP - JSTL에서 if문 사용하기 (0) 2025.02.11 Forwarding이란? (0) 2025.01.30 JSP - EL'{$}' (0) 2024.08.29 JSP - 헬퍼함수(Prototype.js) $F()와 $H() (0) 2024.08.29 JSP - 헬퍼함수의 개념과 소개 (0) 2024.08.29