본문 바로가기
코딩 공부/web & Java

[Java/JSP] EL(Expression Language)

by 현장 2022. 11. 12.

EL(Expression Language)

자바 빈의 프로퍼티, 값을 JSP의 표현식 <%= %>이나 액션 태그 <jsp:useBean>를 사용하는것 보다 쉽고 간결하게 꺼낼수 있게 하는 기술이다. 또한 static 메소드를 호출할 수도 있는데 JSP에서는 주로 서블릿 보관소(JspContext, ServletRequest, HttpSession, ServletContext)에서 값을 꺼낼 때 사용한다.

EL 표기법

1. ${ }

- JSP가 실행될 때 즉시 반영된다. (Immediate evaluation)
- 객체 프로퍼티 값을 꺼낼때 주로 사용한다.

2. #{ }

- 시스템에서 필요하다고 판단될 때 그 값을 사용한다. (Deferred evaluation)
- 사용자 입력값을 객체의 프로퍼티에 담는 용도로 주로 사용한다.

EL에서 보관소 검색 범위 지정

보관소를 지정하지 않으면 모든 보관소를 검색하지만 특정 보관소에서만 찾도록 지정할 수 있다. 다음은 EL에서 보관소를 참조할때 사용하는 이름이다.

이름 보관소
pageScope JspContext
requestScope ServletRequest
sessionScope HttpSession
applicationScope ServletContext

EL 기본 객체

객체 설명 코드
pageContext JSP의 PageContext 객체  
servletContext ServletContext 객체 ${pageContext.servletContext.객체명}
session HttpSession 객체 ${pageContext.session.객체명}
request ServletRequest 객체 ${pageContext.request.객체명}
response ServletResponse 객체  
param 요청 매개변수의 값 조회 ${param.매개변수명}
paramValues 요청 매개변수의 값 배열 조회 ${paramValues.매개변수명}
header HTTP 헤더의 값 조회 ${header.헤더명}
headerValues HTTP 헤더의 값 배열 조회 ${headerValues.헤더명}
cookie 쿠키 값 조회 ${cookie.쿠키명}
initParam 컨텍스트 초기화 매개변수의 값 조회 ${initParam.매개변수명}
pageScope page 보관소의 값 조회 ${pageScope.객체명}
requestScope request 보관소의 값 조회 ${requestScope.객체명}
sessionScope session 보관소의 값 조회 ${sessionScope.객체명}
applicationScope application 보관소의 값 조회 ${applicationScope.객체명}

EL연산자

1. 산술연산자: +, -, *, /, %, mode
2. 논리연산자: &&, ||, !, and, or, not
3. 비교연산자: ==, !=, <, >, <=, >=, eq, ne, lt, get, le, ge
4. empty연산자: 값이 null이거나 공백문자인지를 판단하는 연산자
   - ${empty ""} → true
   - ${empty null} → true

'코딩 공부 > web & Java' 카테고리의 다른 글

[Web] Component  (0) 2022.11.18
[Java/JSP] JSTL(JavaServer Pages Standard Tag Library)  (0) 2022.11.13
[Java] HttpServletRequest와 HttpServletResponse  (0) 2022.11.11
[Web] MVC패턴  (0) 2022.11.10
[Web] Forward와 Redirect  (0) 2022.11.05