[JSP] 14. 표현 언어(Expression Language)
2022. 4. 28. 18:15ㆍJAVA/Servlet&JSP
1. 표현 언어란 무엇인가?
- 표현 언어는 기존의 JSP의 데이터를 표현하기 위해 스크립트릿(<% %>)이나 표현식(<%= %>)을 대체하여 데이터를 표현하기 위한 새로운 스크립트 언어입니다.
표현 언어의 기능
- JSP의 네 가지 기본 객체(page, request, session, application)가 제공하는 영역의 속성을 사용
- 집합 객체에 대한 접근 방법을 제공
- 수치 연산(+,-,*,/,%), 관계 연산(==, !=, >, <, >=, <=), 논리 연산자(&&, ||, !) 제공
- 자바 클래스 메서드 호출 기능 제공
- 표현 언어만의 기본 객체 제공
1.1 표현 언어의 표현 방법
${expr}
<jsp:include page="/moudle/${skin.id}/header.jsp" flush="true"/>
<b>${sessionScope.member.id}</b>님 감사합니다.
2. 표현 언어의 기본 객체
- pageContext : JSP의 page 기본 객체와 동일
- pageScope : page 영역
- requestScope : request 영역
- sessionScope : session 영역
- applicationScope : application 영역
- param : request.getParameter(이름)의 결과와 동일
- paramValues : request.getParameterValues(이름)의 결과와 동일
- header : request.getHeader(이름)의 결과와 동일
- headerValues : request.getHeaders(이름)의 결과와 동일
- cookie : request.getCookies()의 반환 결과인 Cookies 배열로 매핑
- initParam : application.getinitParameter(이름)의 결과와 동일
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setAttribute("name", "김용환");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
요청 URL: ${pageContext.request.requestURL}<br/>
request의 name 속성: ${requestScope.name}<br/>
code 파라미터: ${param.code}
</body>
</html>
3. 표현 언어의 기본
3.1 EL의 데이터 타입
- boolean 타입 : true, false
- Integer 타입
- 실수 타입
- 문자열 타입
- 널 타입
3.2 객체에 접근하기
${member.memberid.value}
- Member 클래스 타입의 member 객체의 memberid 값을 가져옴
3.3 객체의 탐색
${pageScope.NAME} => ${NAME} (NAME 속성이 설정되어 있으면 생략이 가능함)
저장영역 탐색 순서
PAGE -> REQUEST -> SESSION -> APPLICATION
3.4 수치 연산자
- + : 덧셈
- - : 뺄셈
- * : 곱셈
- / 또는 div : 나눗셈
- % 또는 mod : 나머지
3.5 비교 연산자
- == 또는 eq
- != 또는 ne
- < 또는 lt
- > 또는 gt
- <= 또는 le
- >= 또는 ge
3.6 논리 연산자
- && 또는 and
- || 또는 or
- ! 또는 not
3.7 empty 연산자
empty <값>
- <값>==null : true
- <값>=="" : true
- <값>==길이가 0인 배열 : true
- <값>==빈 Map : true
- <값>==빈 Collection(List, Map, Array 등) : true
- 이 외의 경우에는 false를 리턴
3.8 비교 선택 연산자
<수식> ? <값1> : <값2>
- 수식의 결과가 true이면 값1을 반환하고 false이면 값2를 반환합니다.
3.9 연산자 우선순위
- []
- ()
- -(단일) not ! empty
- * / div % mod
- + -
- < > <= >= lt gt le ge
- == != eq ne
- && and
- || or
- ?:
4. 표현 언어에서 클래스 함수 호출
<%@ page import="클래스 이름" %>을 임포트하고 메서드를 호출합니다.
<%@page import="java.time.LocalDateTime"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${LocalDateTime.now()}
</body>
</html>
References
source code : https://github.com/yonghwankim-dev/JSP2.0
JSP 2.0 프로그래밍 기초부터 중급까지
'JAVA > Servlet&JSP' 카테고리의 다른 글
[Java][Servlet] Servlet & JSP의 MVC 패턴 (0) | 2022.05.23 |
---|---|
[Tomcat] Tomcat, JSP, Servlet 개념 및 구조 (0) | 2022.05.23 |
[JSP] 11.5 자카르타 DBCP API를 이용한 커넥션 풀 사용 (0) | 2022.04.28 |
[JSP] 11.4 JSP에서 JDBC 프로그래밍하기 (0) | 2022.04.28 |
[JSP] 11.3 SQL 쿼리 기초 (0) | 2022.04.19 |