표현 언어(Expression Language)는 값을 표현하는 데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.
자바 코드보다 좀 더 간단하게 사용 가능하여 디자이너, 프론트엔드 개발자가 쉽게 이해할 수 있어야 하는 필요성에 의해 사용됨


Scope, parameter, cookie, header 등의 객체를 제공

표현 언어를 사용하면 우측 자바 코드에 비해 좀 더 직관적으로 결과 값을 디스플레이할 수 있다.
\' 와 같이 \ 기호와 함께 사용해야 함\ 기호 자체는 \\ 로 표시$ {<표현1>.<표현2>}
null이면 null을 반환한다.Map일 경우 표현2를 key로한 값을 반환List나 배열이면 표현2가 정수일 경우 해당 정수 번째 index에 해당하는 값을 반환, 만약 정수가 아닐 경우에는 오류 발생객체일 경우는 표현2에 해당하는 getter메소드에 해당하는 메소드를 호출한 결과를 반환한다.+ : 덧셈
- : 뺄셈
* : 곱셈
/ 또는 div : 나눗셈
% 또는 mod : 나머지
${"10"+1} → ${10+1}${"열"+1} → 에러${null + 1} → ${0+1}== 또는 eq
!= 또는 ne
< 또는 lt
> 또는 gt
<= 또는 le
>= 또는 ge
문자열 비교: ${str == '값'} str.compareTo("값") == 0 과 동일
&& 또는 and
|| 또는 or
! 또는 not

[] .()- (단일) not ! empty* / div % mod+ -< > <= >= lt gt le ge== != eq ne&& and|| or? :<%@ page isELIgnored = "true" %>
최근 버전에는 기본적으로 활성화된 상태
<%@ 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">
<!-- page, request, session, application별로 scope 생성 -->
<%
pageContext.setAttribute("p1", "page scope value");
request.setAttribute("r1", "request scope value");
session.setAttribute("s1", "session scope value");
application.setAttribute("a1", "application scope value");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<H1> JSP 표현식으로 Scope 값을 출력하자!</H1>
pageContext.getAttribute("p1"): <%=pageContext.getAttribute("p1") %><br>
request.getAttribute("r1"): <%=request.getAttribute("r1") %><br>
session.getAttribute("s1"): <%=session.getAttribute("s1") %><br>
application.getAttribute("a1"): <%=application.getAttribute("a1") %><br>
<H1> EL로 Scope 값을 출력하자!</H1>
pageContext.getAttribute("p1"): ${pageScope.p1}<br>
request.getAttribute("r1"): ${requestScope.r1}<br>
session.getAttribute("s1"): ${sessionScope.s1}<br>
application.getAttribute("a1"): ${applicationScope.a1}<br>
</body>
</html>
