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
<%@ 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>
'JSP' 카테고리의 다른 글
JSP(상품재고관리 프로그램)_2024-09-04 (4) | 2024.09.05 |
---|---|
JSP(표만들기)_2024-09-03 (6) | 2024.09.04 |
JSP(상품재고조회 프로그램)_2024-08-30 (2) | 2024.09.02 |
JSP(숫자계산 프로그램)_2024-08-29 (0) | 2024.08.30 |
JSP(회원 정보 관리 프로그램)_2024-08-29 (0) | 2024.08.30 |