안녕하세요. pitang입니다.
JavaBeans(자바 빈)에 대해 알아본 다음, 표현 언어(Expression Language)에 대해 알아보겠습니다.
JavaBeans(자바 빈)
JSP 기반 웹 애플리케이션에서 정보를 표현할 때 사용하는 것 중 하나가 자바 빈이다.
자바 빈은 속성(데이터), 변경 이벤트, 객체 직렬화를 위한 표준이다. JSP에서는 속성을 표현하기 위한 용도로 사용된다.
자바 빈 규약을 따르는 클래스를 자바 빈이라 부르고, 자바 빈 클래스는 필드, 값을 읽어올 때 메서드, 값을 저장할 때 메서드로 구성된다.
프로퍼티는 자바 빈에 저장되는 값을 나타낸다.
메서드 이름을 사용해 프로퍼티의 이름을 결정하게 되는데,
이름은 get, set 메서드의 get/set을 지우고 앞글자를 소문자로 결정하고, 프로퍼티 타입이 boolean 일 경우 get 대신 is를 붙일 수 있다.
읽기 전용 프로퍼티 - get 또는 is 메서드만 존재하는 프로퍼티
읽기/쓰기 프로퍼티 - get/set 또는 is/set 메서드가 존재하는 프로퍼티
ex1)
ex2)
ex3)
-> boolean 타입은 get 대신 is를 붙일 수 있다.
표현 언어(Expression Language)
표현 언어는 다른 형태의 스크립트 언어로서 스크립트 요소 중 하나이다. 표현식보다 간결하고 편리하기 때문에 많이 사용된다.
표현 언어는 값을 표현하는 데 사용하는 스크립트 언어로, JSP의 스크립트 요소를 보완하는 역할을 한다.
표현 언어는 아래와 같은 기능을 제공한다.
- JSP의 네 가지 기본 객체가 제공하는 영역의 속성 사용
- 수치 연산, 관계 연산, 논리 연산자 제공
- 자바 클래스 메서드 호출 기능 제공
- 쿠키, 기본 객체의 속성 등 JSP를 위한 표현 언어의 기본 객체 제공
- 람다식을 이용한 함수 정의와 실행
- 스트림 API를 통한 컬렉션 처리
- 정적 메서드 실행
EL은 JSP의 스크립트 요소(스크립트릿, 표현식, 선언부)를 제외한 나머지 부분에서 사용될 수 있고,
EL의 사용법은 ${attribute} 와 같이 사용한다.
EL의 기본 객체
JSP는 웹 애플리케이션을 구현하는 데 필요한 요청, 응답, 세션 등에 쉽게 접근할 수 있도록
request, response, session 등의 기본 객체를 제공하고 있다.
JSP는 EL에서 사용할 수 있는 기본 객체도 제공하고 있다.
이 객체를 이용해 요청 파라미터나 세션 속성 값 등을 표현 언어에서 사용할 수 있다.
EL에서 사용할 수 있는 기본 객체
pageContext | JSP의 pageContext 기본 객체와 동일. |
pageScope | pageContext 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체 |
requestScope | request 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체 |
sessionScope | session 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체 |
applicationScope | application 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체 |
param | 요청 파라미터의 <파라미터 이름, 값> 매핑을 저장한 Map 객체 |
paramValues | 요청 파라미터의 <파라미터 이름, 값 배열> 매핑을 저장한 Map 객체 |
header | 요청 정보의 <헤더 이름, 값> 매핑을 저장한 Map 객체. request, getHeader의 결과와 동일. |
headerValues | 요청 정보의 <헤더 이름, 값 배열> 매핑을 저장한 Map 객체. request, getHeaders의 결과와 동일. |
cookie | <쿠키 이름, Cookie> 매핑을 저장한 Map 객체. request.getCookies()로 구한 Cookie 배열로부터 매핑을 생성. |
initParam | 초기화 파라미터의 <이름, 값> 매핑을 저장한 Map 객체. application, getInitParameter의 결과와 동일. |
pageContext 객체
ex1)
-> 값이 없는 경우 java code는 null을, el은 출력하지 않는다.
request 객체
ex1)
ex2) forward
session 객체
ex1)
ex2) redirect
application 객체
ex1)
-> application 객체는 모든 사용자를 위해 공유할 정보를 저장하고 있으므로,
10번 파일을 실행한 후에 11번 파일을 실행하면 값이 같이 저장되어 있는 것을 알 수 있다.
ex5) scope
-> 영역을 나타내는 EL 기본 객체를 사용하지 않고 이름만 지정하는 경우,
EL은 네 개의 영역을 page->request->session->application 차례대로 검색해서 속성이 존재하는지 확인한다.
JavaBeans 객체
자바 빈에서는 내장 객체에 저장하여 값을 주고받는데 이때 표현 언어로 자바 빈의 값들을 꺼내올 수 있다.
${자바 빈 이름.속성이름} 또는 ${자바 빈 이름["속성 이름"]} 과 같이 사용한다.
두 번째, ${자바 빈 이름["속성 이름"]}과 같이 사용하는 이유는 프로퍼티 이름에 특수문자가 존재하는 경우 이와 같이 사용한다.
실제 내부에서 일어나는 일은 bean 객체 안에 get메서드를 호출하여 값을 가지고 온다.
-> 아래의 예제들에서 사용 될 Bean03 자바 빈 파일이다.
ex1)
ex2) 표현식 사용
ex3) 표현언어 사용
ex4)
-> 거꾸로 거슬러 올라가 보면 값이 어디 있는지 알아보기 쉽다.
감사합니다.
*m1 맥북을 사용 중입니다.*
'6개월 대장정 > JSP 개념' 카테고리의 다른 글
56일차 - [JSP] 표현 언어(el) - 컬렉션 (0) | 2021.11.17 |
---|---|
56일차 - [JSP] 표현 언어(el) - 기본 객체(2) (0) | 2021.11.17 |
54일차 - [JSP] scope (0) | 2021.11.09 |
54일차 - [JSP] cookie (0) | 2021.11.09 |
53일차 - [JSP] session (1) | 2021.11.07 |