JSP에서 스크립틀릿(<% %>)을 최소화하고, HTML과 Java 코드를 분리하여 가독성과 유지보수성을 높이기 위해 사용되는 JSP 표현 언어입니다.
| 내장 객체 | 설명 |
|---|---|
pageScope | page 영역의 속성 값을 가져온다. |
requestScope | request 영역의 속성 값을 가져온다. |
sessionScope | session 영역의 속성 값을 가져온다. |
applicationScope | application 영역의 속성 값을 가져온다. |
param | 요청 파라미터 값을 가져온다. |
paramValues | 요청 파라미터의 배열 값을 가져온다. |
header | 요청 헤더 값을 가져온다. |
headerValues | 요청 헤더의 배열 값을 가져온다. |
cookie | 쿠키 값을 가져온다. |
initParam | 초기화 파라미터 값을 가져온다. |
사용 예시 )
<c:set var="message" value="Hello, JSP!" scope="request"/>
<p>메시지: ${requestScope.message}</p>
<p>메시지: ${message}</p>
<%-- JSP에서는 기본적으로 가장 가까운 Scope에서 변수를 찾습니다.
(page → request → session → application) --%>
(1) 산술 연산자
| 연산자 | 설명 |
|---|---|
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/, div | 나눗셈 |
%, mod | 나머지 |
<p>결과: ${10 + 20}</p> <!-- 결과: 30 -->
(2) 비교 연산자
| 연산자 | 설명 |
|---|---|
==, eq | 같음 |
!=, ne | 같지 않음 |
<, lt | 작음 |
>, gt | 큼 |
<=, le | 작거나 같음 |
>=, ge | 크거나 같음 |
<p>비교 결과: ${10 > 5}</p> <!-- true -->
(3) 논리 연산자
| 연산자 | 설명 |
|---|---|
&&, and | 논리 AND |
!, not | 논리 NOT |
(1) 자바 빈(Bean)(객체) 접근
JAVA 객체에서 값을 꺼내서 사용 할 수 있습니다.
<p>이름: ${user.name}</p> <!-- user.getName() -->
(2) List 접근
JAVA 컬렉션에 접근 할 수 있습니다.
<p>첫 번째 유저: ${userList[0].name}</p>
(3) Map 접근
<p>관리자 이름: ${userMap["admin"].name}</p>
<p>결과: ${score >= 70 ? "합격" : "불합격"}</p>
코드 가독성 증가
보안성 향상
JSTL과의 강력한 조합
복잡한 로직을 처리하기 어려움
디버깅이 어려움
EL(Expression Language)은 JSP에서 Java 코드를 최소화하고 HTML과 분리하여 유지보수성을 높이는 강력한 기능입니다.
JSTL과 함께 사용하면 가독성과 효율성을 극대화할 수 있으며,
보안적으로도 안전한 방식입니다.