0320_ex03_EL

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>