익스프레션 언어(EL 표현식)
연산식
${식}
<%@ page contentType="text/html; charset=UTF-8" %>
<%
pageContext.setAttribute("num", 10);
%>
${100 + 200}<br>
${num == 10 ? "숫자 10입니다":"숫자 10이 아닙니다."}
Object로 변수처럼 사용할 수 있음.
pageContext > request > session > application
(적용 범위가 좁을수록 높은 우선순위를 가진다.)
속성값을 범위에 따라 조회할 수 있는 객체(map)
마침표(.), 대괄호(['속성명'])
-> 변수명 규칙과 맞지 않을 경우 대괄호 사용
<%@ page contentType="text/html; charset=UTF-8" %>
<%
application.setAttribute("num", 100);
request.setAttribute("num", 200);
pageContext.setAttribute("num", 300);
pageContext.setAttribute("max-num", 1000);
%>
pageContext.num : ${pageScope.num}<br>
request.num : ${requestScope.num}<br>
application.num : ${applicationScope['num']}<br>
max-num : ${pageScope["max-num"]}
-마침표, 대괄호
참고) HttpServletRequest - String getParameter(String name)과 동일 기능
GET 방식 : ?이름=값&이름=값;
POST 방식 : 바디 /application/x-www-form-urlencoded
이름=값&이름=값
-값: url 인코딩 처리된 값
<%@ page contentType="text/html; charset=UTF-8" %>
${param.num1} + ${param.num2} = ${param.num1 + param.num2}
HttpServletRequest - String[] getParameterValues(String name) 와 동일 기능
<%@ page contentType="text/html; charset=UTF-8" %>
User-Agent: ${header['User-Agent']}<br>
참고 ) headerValues는 여러개
<%@ page contentType="text/html; charset=UTF-8" %>
User-Agent: ${header['User-Agent']}<br>
JSESSIONID : ${cookie.JSESSIONID.getValue()}<br>
JSESSIONID : ${cookie.JSESSIONID.value}
key1 : ${initParam.key1}<br>
-JSP페이지의 주변 환경에 대한 정보를 제공하는 객체
-다른 내장 객체를 접근할 때 사용 가능 (EL식에서)
URI : ${pageContext.getRequest().getRequestURI()}<br>
단축 버전
URI : ${pageContext.request.requestURI}<br>
lt - lesser than : <
gt - greater than : >
le - lesser than and equal : <=
ge - greater than and equal : >=
eq - equal : ==
ne - not equal !=
논리 연산자
&& / AND
|| / OR
! / NOT
엠프티 연산자
${empty str}
EL식 속성 : 객체 -> 객체의 각 속성명을 접근(getter 호출)
예) ${book.title} -> book.getTitle()
${book['title']}
마침표로 사용하는 경우는 변수명 규칙과 동일하게 적용
-앞에는 숫자 X 예) nums['0']
-특수문자 $, _ 예) num-1 (X) -> 대괄호 연산자 ['num-1']