○ Expression Language(표현 언어)
JSP에서 브라우저 출력은 주로 표현식 태그를 사용한다
<%= request.getParameter("userid") %>
위와 같은 태그를 간단히 줄이는 방법으로 EL(Expression Language)를 사용한다
- ${ param.userid }
- ${ param['userid']}
- ${ param["userid"]}
■ 표현 언어를 사용하는 규칙
- 표현 언어는 $로 시작한다
- $와 { 사이에 공백이 없어야 한다
- 표현 언어의 문장 구조는 ${ exp }와 같다
- 표현식 exp에는 산술, 관계, 논리와 같은 기본적인 연산이 가능하다
- 표현식은 [객체명], [객체명.속성명], [객체명[첨자]], [객체명["속성명"]], [객체명['속성명']]
과 같은 구조로 구성된다
■ 표현 언어에서 사용되는 Literal(리터럴, 상수)
- 논리값 : true, false
- 자바에서 이용되는 정수 : 1, -5, ...
- 자바에서 이용되는 실수 : 3.1, 4.5E+5, ...
- 문자열 : 'java', "java"와 같이 큰 따옴표, 작은 따옴표 둘 다 사용 가능
- null : 아무것도 없다는 의미
EL은 자바 스크립트에서 확장된 Xpath에서 힌트를 얻어 만들어진 언어이다
그러나 EL은 값이 없는 변수(null)에 대해 좀 더 관대하고 데이터 형 변환을 자동으로 해준다
이러한 특징들은 질의 문자열을 처리하는데 주요하게 작용한다
질의 문자열은 서버로 전달될 때 항상 문자열로 보내는데, 서버 프로그램 내에서는 int, boolean으로 사용해야 할 때가 있다
이럴 때 EL을 사용하면 값이 없거나 형 변환 등에 전혀 신경 쓸 필요없이 사용할 수 있다
■ EL 표현
${true}
${false}
${123}
${3.14}
${"JAVA"}
${'java'}
■ EL 연산자
- 산술 연산자 : +, -, *, /, %, mode
- 논리 연산자 : &&, ||, !, and, or, not
- 비교 연산자 : ==, !=, <, >, <=, >=, eq, ne, lt, get, le, ge
- empty 연산자 : 값이 null이거나 공백 문자인지를 판단하는 연산자
${empty ""} → true
${empty null} → true
○ EL에서 지원하는 내장 객체
JSP 페이지에서는 내장 객체를 지원한다. 내장 객체란 내부적으로 변수 선언과 초기화 작업이 자동으로 되는 객체로써
개발자는 내장 객체를 사용할 때 참조변수의 이름을 기억하고 있다가 참조변수로 바로 접근하여 사용할 수 있다
EL에서도 JSP처럼 내장 객체를 지원하므로 필요한 객체는 내장 객체를 참조 변수 이름으로 곧바로 사용할 수 있다
내장 객체 | 의미 |
---|---|
pageContext | pageContext를 참조할 때 사용 |
pageScope | pageContext에 등록된 데이터의 이름과 값을 저장하고 있는 map 객체 (page 영역에 존재하는 객체를 참조할 때 사용) |
requestScope | HttpServletRequest에 등록된 데이터의 이름과 값을 저장하고 있는 map 객체 (request 영역에 존재하는 객체를 참조할 때 사용) |
sessionScope | HttpSession에 등록된 데이터의 이름과 값을 저장하고 있는 map 객체 (session 영역에 존재하는 객체를 참조할 때 사용) |
applicationScope | ServletContext에 등록된 데이터의 이름과 값을 저장하고 있는 map 객체 (application 영역에 존재하는 객체를 참조할 때 사용) |
param | QueryString의 이름과 값을 저장하고 있는 map 객체 (파라미터 값을 얻어올 때 사용) |
paramValues | 같은 이름으로 전달된 질의 문자열의 이름과 값들을 저장하고 있는 map 객체 (파라미터 값을 배열로 얻어올 때 사용) |
cookie | 요청을 보낸 클라이언트의 쿠키 이름과 값을 저장하고 있는 map 객체 (쿠키 객체를 참조할 때 사용) |
initParam | 웹 어플리케이션에 저장한 초기 파라미터의 이름과 값을 저장하고 있는 map 객체 (컨텍스트의 초기화 매개변수명의 값을 반환) |
실행 코드
실행 결과
'JSP' 카테고리의 다른 글
JSTL Core Tag (0) | 2020.07.12 |
---|---|
JSTL(JSP Standard Tag Library) (0) | 2020.07.10 |
Statement와 PreparedStatement (0) | 2020.07.08 |
Connection Pool (0) | 2020.07.08 |
JDBC 프로그래밍 (0) | 2020.07.06 |