본문 바로가기
JSP

JSP EL (Expression Language)_2024-09-02

by 앵보몬 2024. 9. 2.
728x90
반응형

JSP EL (Expression Language)은 JSP 페이지에서 데이터 접근과 조작을 보다 직관적이고 간단하게 할 수 있게 도와주는 기능입니다. EL을 사용하면 Java 코드 대신 간결한 문법으로 데이터를 표현하고 조작할 수 있습니다. JSP EL의 기본적인 사용법과 몇 가지 예제를 통해 이해를 돕겠습니다.

JSP EL의 주요 특징

간결한 문법 : Java 코드 없이 데이터에 접근하고 조작할 수 있습니다. 예를 들어, ${user.name} 같은 형태로 객체의 속성에 접근할 수 있습니다.

강력한 표현 능력 : 산술 연산, 비교 연산, 논리 연산 등 다양한 연산을 지원합니다.

자동 형 변환 : EL은 자동으로 형 변환을 수행하여, 데이터 타입에 맞게 처리합니다.

널 값 처리 : 널 값 처리 시 기본값을 제공하여, 널 포인터 예외를 방지합니다.

 

EL 문법

속성 접근 : ${object.property}

수학 연산 : ${num1 + num2}

비교 연산 : ${num1 > num2}

논리 연산 : ${true && false}

메서드 호출 : ${user.getName()}

 

EL의 데이터 범위

EL을 사용할 때 데이터는 다양한 범위(scope)에서 접근할 수 있습니다:

pageContext.setAttribute() : 현재 JSP 페이지 내에서만 유효합니다.

request.setAttribute() : 현재 요청 동안 유효하며, 다른 JSP 페이지로 전달할 수 있습니다

session.setAttribute() : 사용자 세션 동안 유효하며, 로그인 상태 유지 등 장기적인 데이터 저장에 사용됩니다.

application.setAttribute(): 웹 애플리케이션 전체에서 유효하며, 시스템 설정 정보나 애플리케이션 전반에 걸쳐 필요한 데이터를 저장하는 데 사용됩니다.

이러한 범위는 EL로도 접근할 수 있으며, 설정된 데이터는 해당 범위에 따라 사용 가능합니다.

이제 JSP EL을 활용하여 JSP 페이지를 더욱 효율적으로 작성할 수 있을 것입니다. EL을 사용하면 JSP 페이지의 가독성을 높이고, 유지보수를 더 쉽게 할 수 있습니다.

 

test12.jsp
0.00MB
ImplicitForwardResult.jsp
0.00MB

 

test12.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    pageContext.setAttribute("scopeValue", "페이지 영역");
    request.setAttribute("scopeValue", "리퀘스트 영역");
    session.setAttribute("scopeValue", "세션 영역");
    application.setAttribute("scopeValue", "애플리케이션 영역");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표현 언어(EL) - 내장 객체</title>
</head>
<body>
    <h2>ImplicationObjMain 페이지</h2>
    <h3>각 영역에 저장된 속성 읽기</h3>
    <ul>
        <li>페이지 영역 : ${pageScope.scopeValue}</li>
        <li>리퀘스트 영역 : ${requestScope.scopeValue}</li>
        <li>세션 영역 : ${sessionScope.scopeValue}</li>
        <li>애플리케이션 영역 : ${applicationScope.scopeValue}</li>
    </ul>
   
     <h3>영역 지정 없이 속성 읽기</h3>
   <ul>
      <li>${ scopeValue } </li>
   </ul>
<jsp:forward page="ImplicitForwardResult.jsp"></jsp:forward>
</body>
</html>

 

ImplicitForwardResult.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표현 언어(EL) - 내장 객체</title>
</head>
<body>
    <h2>ImplicitFowardResult 페이지</h2>
    <h3>각 영역에 저장된 속성 읽기</h3>
    <ul>
        <li>페이지 영역 : ${ pageScope.scopeValue }</li>
        <li>리퀘스트 영역 : ${ requestScope.scopeValue }</li>
        <li>세션 영역 : ${ sessionScope.scopeValue }</li>
        <li>애플리케이션 영역 : ${ applicationScope.scopeValue }</li>
    </ul>
    <h3>영역 지정 없이 속성 읽기</h3>
    <ul>
        <li>${ scopeValue }</li>
    </ul>
</body>
</html>

 

728x90
반응형