ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 특수 문자 이스케이프: 예를 들어, &는 &amp;, <는 &lt;로 변환하여 출력합니다. 이를 통해 사용자가 입력한 값이 그대로 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

    댓글

Designed by Tistory.