EL 1
1. 표현 언어(EL)
1) jsp로 표현된 표현을 보다 정확하게 사용할 수 있는 표현 형태
2) EL로 값을 표현하기 위해서는 jsp 관리 하에 4개 영역에서만 사용할 수 있다.
2. 영역 EL
1) 사이드 패널
– 값은 한 페이지(현재 페이지)에서만 저장 및 공유할 수 있습니다.
2) 요청 영역
– 로컬 개념으로 페이지를 닫으면 영역도 닫힙니다.
– 최대 2페이지에 값을 저장하거나 공유할 수 있습니다.
– 가장 많이 사용
3) 세션 영역
– 전역 개념으로 창은 브라우저가 완전히 종료될 때까지 활성 상태를 유지합니다.
– 동일한 웹 브라우저에서 요청한 페이지에 대한 공유 값
4) 범위
– 프로젝트 내에서 요청된 페이지 간 값 공유
3. EL 액세스 유형: ${region.variable}
1) 주석에 $를 쓰면 에러가 나니 주의
2) param을 사용하면 매개변수에 액세스할 수 있습니다.
예) ${param.age}
4. 스크립틀릿에서 EL 변수 설정
1) Area.setAttribute(“변수 이름”,”값”); 스크립틀릿에 정의
– pageContext.setAttribute(“msg”, “페이지 영역입니다.
”); –> 측면 패널에 정의됨
– request.setAttribute(“msg”, “요청 필드입니다.
”); –> 요청 영역에 정의됨
– session.setAttribute(“msg”, “세션 범위입니다.
”); –> 세션 범위에서 정의됨
2) 각 영역에 동일한 변수 이름을 설정한 경우 내림차순으로 우선 순위가 결정됩니다.
– 페이지 –> 요청 –> 세션 –> 신청
5. EL의 연산자
1) 변수뿐만 아니라 계산도 가능
2) ${1 + 1}
3) €{10 / 3}
4) ${10% 3}
6. EL 비교 연산자
1) 다른 연산자와의 혼동을 피하기 위해 엔터티 코드와 유사하게 사용하는 것이 좋다.
2) > : >
3) < : 에 따라
4) >= : 게
5) <= : 르
6) == : 방정식
7) !
= : 아니오
7. EL의 삼항 연산자
1) ${ 빈 매개변수.msg ? ‘값 없음’: param.msg }
2) 변수가 비어 있는지 여부를 결정하는 부울 표현식은 empty를 사용합니다.
8. EL의 논리 연산자
1) && : 그리고, ${ 10 gt 3 및 5 eq 5 }
2) || : 또는 ${ 10 gt 3 또는 5 eq 5 }
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!
-- EL 표기법 : jsp에서 표현되는 표현식을 더 간결하게 사용할 수 있도록 해 주는 표현 형태
EL(Expression Language) : EL로 값을 표현하려면 jsp의 관리하에 있는 4개의 영역에서만
사용을 할 수 있다.
1) page영역 : 단 하나의 페이지(현재페이지)에서만 값을 저장하고 공유할 수 있다.
2) request영역(가장 많이 쓰임) : 지역개념으로 페이지가 닫히면 영역도 종료가 된다.
최대 두 개의 페이지에서 값을 저장하거나 공유할 수 있다.
3) session영역 : 전역 개념으로 브라우저가 완전히 종료되기 전까지는 영역이 살아있다.
같은 웹 브라우저내에서 요청되는 페이지들에게 값을 공유
4) application 영역 : 한 프로젝트에서 요청되는 페이지들간 값의 공유
// 주석에도 달러를 쓰면 오류 발생할 수 있다.
EL의 접근형식 : 달러표시{영역.변수}
-->
<%
String msg = "안녕";
// pageScope에 값을 저장
pageContext.setAttribute("msg", "page 영역입니다.
");
// requestScope에 값을 저장
request.setAttribute("msg", "request 영역입니다.
");
request.setAttribute("hi", "안녕하세요");
session.setAttribute("msg", "session 영역입니다.
");
%>
<!
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex03_EL</title>
</head>
<body>
일반 jsp 표현식 : <%= msg %><br>
EL표현식(생략) : ${msg}<br>
EL표현식(생략) : ${hi}<br>
EL표현식(생략x) : ${requestScope.msg}<br>
EL표현식(생략x) : ${sessionScope.msg}<br>
EL표현식(생략x) : ${requestScope.hi}<br>
<!
-- 파라미터로 넘어온 것 중에 'age'이름을 가진 파라미터의 값을 가져온다.
-->
EL표현식(파라미터) : ${param.age}
<!
-- 생략식을 사용했을 때 영역의 참조 순서
1. pageScope
2. requestScope
3. sessionScope
4. applicationScope -->
<hr>
EL표기법의 연산자<br>
\${ 1 + 1 } : ${ 1 + 1 }<br><!
-- 역슬래시(\)를 앞에 붙이면 그대로 나온다.
-->
\${ 2 + 2 } : ${ 2 + 2 }<br>
\${ 10 / 3 } : ${ 10 / 3 }<br>
\${ 10 % 3 } : ${ 10 % 3 }<br>
\${ param.age / 3 } : ${ param.age / 3 }<br>
<hr>
비교연산자<br>
\${ 3 > 2 } : ${ 3 > 2 } or ${3 gt 2}<br>
\${ 3 < 2 } : ${ 3 < 2 } or ${3 lt 2}<br>
\${ 3 >= 2 } : ${ 3 ge 2 }<br>
\${ 3 <= 2 } : ${ 3 le 2 }<br>
\${ 3 == 2 } : ${ 3 eq 2 }<br>
\${ 3 !
= 2 } : ${ 3 ne 2 }
<hr>
삼항연산자<br>
파라미터 값 : ${ param.msg == null ? '값 없음' : param.msg }<br>
<!
-- empty : 비어있는지를 체크, 추천하는 방법 -->
파라미터 값 : ${ empty param.msg ? '값 없음' : param.msg }<br>
<hr>
논리연산자<br>
${ 10 gt 3 && 5 eq 5 }<br>
<!
-- 문장으로 작성하기도 한다.
-->
${ 10 gt 3 and 5 eq 5 }
${ 10 gt 3 or 5 eq 5 }
</body>
</html>