Information Security

EL(Expression Language) 본문

JSP Web Programming

EL(Expression Language)

leeeeye321 2017. 6. 14. 01:32

EL(Expression Language) : 표현 언어

-표현 언어는 스크립트 요소 중의 하나이다. 식을 계산하여 그 결과를 출력하기 위하여 사용한다.

 

 

  실행

-표현 언어는 표현식보다 간결하고 편리하여 많이 사용된다.

 

EL의 내장 객체

★1

pageScope : pageContext 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체

requsetScope : requset 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체

sessionScope : session 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체

applicationScope : application 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체

 

 

 실행

 

 ★2

param : 요청 파라미터의 <파라미터 이름, 값> 매핑을 저장한 Map 객체이다. 파라미터 값의 타입은 String이며, 

request.getParameter(이름)의 결과와 동일하다.  

form 태그를 통해 입력된 데이터를 가져올 때 사용한다.

paramValues : 요청 파라미터의 <파라미터 이름, 값 배열> 매핑을 저장한 Map 객체이다. 파라미터 값의 타입은 String[]이며, request.getParameterValues(이름)의 결과와 동일하다.

form 태그를 통하여 똑같은 이름의 데이터를 여러 개 가져올 때 사용한다.

 

 

 

 실행

-[전송] 버튼 클릭

 

 

★3

header : 요청 정보의 <헤더 이름, 값> 매핑을 저장한 Map 객체이다. request.getHeader(이름)의 결과와 동일하다.

HTTP 요청 메시지에 포함된 HTTP 헤더 값을 가져올 때 사용한다.

 

*header 객체 이용하여 HTTP 헤더 값 가져오는 두 가지 방법

1. header.HTTP헤더이름

2. header["HTTP헤더이름"] (작은 따옴표도 가능)

 

 

-HTTP 헤더 이름은 자바의 식별자 명명 규칙을 따라야 한다.

 

 

★4

initParam : 초기화 파라미터의 <이름, 값> 매핑을 저장한 Map 객체이다. application.getInitParameter(이름)의 결과와 동일하다. 웹 어플리케이션의 초기화 파라미터 값을 가져다가 출력할 때 사용한다.

 

웹 어플리케이션에서 사용할 수 있는 초기화 파라미터 web.xml 파일에

 

<context-param> 태그를 사용하여 추가한다.

 

 

 

실행

-EL을 사용하여 초기화 파라미터를 출력하였다.

 

★5

 

pageContext : java.servlet.jsp 패키지에 속하는 클래스 이름이다. 이 객체를 이용하면 pageContext가 제공하는 8개의 메서드를 호출할 수 있다.

 

EL 식을 이용하여 메서드들을 호출할 때는 이름 제일 앞의 "get"을 떼고, 그 다음의 첫 문자를 소문자로 고친 이름을 사용한다.

 

-getRemoteAddr() : 웹 서버에 연결한 클라이언트의 IP 주소를 구함

-getContextPath() : JSP 페이지가 속한 웹 어플리케이션의 컨텍스트 경로를 구함

-getRequestURI() : 웹 브라우저가 요청한 URL에서 경로를 구함

-getMethod() : 웹 브라우저가 정보를 전송할 때 사용한 방식을 구함

 

 

 

※ getRemoteAddr()을 호출한 결과 IPv6 주소를 리턴하였다. 이를 IPv4로 리턴하고 싶다면 아래의 설정을 해주면 된다.

[Run] -> [Run Confugurations]

 

[Arguments] -> VM arguments 내용 제일 아래에  -Djava.net.preferIPv4Stack=true 옵션을 추가 해준다.

-> [Apply]

 

배열/ 리스트/ 맵 EL로 접근하기

 

 실행

 

자바 객체 EL로 접근하기

 

-Person 클래스 작성

 

 실행

 

EL에서 정적 메서드 호출하기

 

1. 정적(static) 메서드 정의

-자주 사용하는 메서드를 static으로 정의한다.

 

2. 함수를 정의한 TLD(Tag Library Descriptor) 파일 작성

-TLD 파일은 태그 라이브러리에 대한 설정 정보를 담고 있다.

 

-WEB-INF/tlds 폴더에 myfunc.tld 파일 생성

 

<function> : EL에서 사용할 함수 정의

<name> : 함수의 이름 정의

<function-class> : 함수의 기능 제공할 클래스의 full name 지정

<function-signature> : 함수의 기능 실행할 메서드 지정

return type, parameter type은 클래스의 full name 적고, parameter는 타입 이름만 적는다.

 

3. web.xml 파일에 TLD 내용 추가

-web.xml 파일에 TLD 파일 설정을 추가한다.

<taglib> : 사용할 태그 라이브러리 지정

<taglib-uri> : JSP에서 해당 태그 라이브러리 참조할 때 사용하는 식별자

<taglib-location> : 태그 라이브러리 작성한 TLD 파일의 위치

 

4. EL에서 함수 사용

 

 

 실행

 

 

'JSP Web Programming' 카테고리의 다른 글

JSTL(JSP Standard Tag Library)  (0) 2017.06.18
Login test  (0) 2017.05.25
Form check  (0) 2017.05.24
Bean 사용하기  (0) 2017.05.22
Area test  (0) 2017.05.16