1. JSP 2.0에서 새로 추가된 스크립트 언어 2. 기존의 expression tag의 업그레이드 버전
3. 주요기능 - 리터럴 데이터 출력 - 각종 연산자를 제공하여 연산결과 출력을 지원 - 4개 속성 scope(page, reqeust, session, application)에 binding된 Attribute(객체)나 그 Attribute의 property값 출력 - JSTL과 연동
4. 구문 - ${출력내용} - ${10}, ${"안녕"}, ${10+20} - ${value1.value2[.value3 ..]} - 특정 객체의 property 접근 할 때 사용
- ${value1[value2]} - 컬랙션(list 계열)의 값을 출력할 때 주로 사용
- value1에는 EL 내장객체나 attribute 명이 들어와야 한다. - 구문을 실행 도중 null이 나오면 더이상 진행하지 않고 출력도 하지 않는다. - 예) ${requestScope.mto.id} ${cto.address.zipcode} ${sessionScope.list[0]}
5. JSP의 scropt(스크립트 릿, 표현식, 선언식, 지시자) 태그에는 사용 못한다. 6. action 태그내에는 사용 가능 - <jsp:include page="${dir}/a.jsp"/>
7. EL의 내장객체(기본객체) - EL은 11개의 내장객체를 제공하여 별다른 추가 코드 없이 특정 객체에 접근하여 사용할 수 있도록 한다. - JSP의 내장객체와는 다르다.(pageContext는 jsp와 같지만 쓸일이 없다) - EL 내장객체 중 pageContext를 제외하고는 모두 name - value 형태의 값을 관리한다. - ${} 내에서만 사용가능 하며 첫번째 값으로만 올 수 있다.
- scope와 관련된 내장객체 - pageScope : pageScope에 접근 - requestScope : request Scope에 접근 - sessionScope : session scope에 접근 - applicationScope : application scope에 접근
- 요청파라미터 관련 내장객체 - param : 요청파라미터 조회시 사용(하나의 이름 하나의 값이 넘어온 경우) - paramValues - 요청파라미터 조회시 사용(하나의 이름으로 여러값이 넘어온 경우)
- Header 값 관련 - header - headerValues
- 쿠키 값 조회 - cookie : ${cookie.이름.value}
- 초기 파라미터 조회(context-param으로 설정된 것) - initParam
- PageContext 객체 관련 내장객체 - pageContext
* [실습]
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- EL의 리터럴(literal)값 - 문자열 : ', "로 감싼다. - 숫자 -true/false - null - null+300하면 null을 0으로 바꿔줘서 계산한다. - mto가 null이 되면 mto.age가 0이 되어 30을 더해서 30 이 나온다.