1. EL 의 구성
데이터 이름 하나로만 구성된 식 : ${name}
연산자를 포함하는 식 : ${name + 100}
자바의 정적 메서드를 호출하는 식 : ${m:sqrt(100)}
애트리뷰트의 종류 |
호출할 때 사용하는 내장 변수 |
메서드의 소속 |
page 애트리뷰트 |
pageContext 내장 변수 |
javax.servlet.jsp.jspContext Class |
request 애트리뷰트 |
request 내장 변수 |
javax.servlet.ServletRequest Interface |
session 애트리뷰트 |
session 내장 변수 |
javax.servlet.http.HttpSession Interface |
application 애크리뷰트 |
application 내장 변수 |
javax.servlet.ServletContext Interfacle |
2. 애트리뷰트 값 설정 및 가져오기
설정 : request.setAttribute(이름,값);
값 취득 : ${RESULT}
3. scope
만약 이름이 다른 test01.jsp 파일과 test02 파일에서 각각 request.setAttribute("RESULT",100); 코드를 정의하고
${RESULT}를 호출한다면 각각의 파일에서 정의한 RESULT 값이 모두 출력된다. 이를 제어하기 위해서 다음과
같은 scope를 추가적으로 정의 할 수 있다.
(p -> r -> s -> a)
사용 ↑좁음 ↓넓음 | 이름 |
scope 이름 |
해석되는 순서 | sample |
page |
pageScope |
1 | ${pageScope.RESULT} | |
request |
requestScope |
2 | ${requestScope.RESULT} |
|
session |
sessionScope |
3 | ${sessionScope.RESULT} | |
application |
applicationScope |
4 | ${applicationScope.RESULT} |
그외 내장 객체
이름 |
표현하는 데이터 |
param |
웹 브라우저로 입력된 데이터 집합 param 는 form 엘리먼트를 통해 입력된 데이터를 가져올 때 사용하는 내장 객체이다. 사용예) ${param.num} 혹은 ${param["num"]} -> 두번째 방법은 이름에 - # 같은 특수문자가 들어 있을때 사용한다. |
paramValues |
웹 브라우저로 입력된 데이터 집합 ( 똑같은 이름의 데이터가 여럿일 때 사용 ) paramValues 는 form 엘리먼트를 통해 입력된 데이터를 가져올 때 사용하는 내장 객체이다. 사용예) 만약 화면에서 체크박스와 같은 복수 데이터를 취급하는 엘리먼트를 사용했을 경우는 아래와 같이 사용한다. ${paramValues.nums[0]} or ${paramValues["nums"][0]} 그런데 전체 선택항목중 일부만 선택할 경우 위와 같이 고정 인덱스를 사용하면 에러가 발생할 거라 추측이 되지만 EL에서는 데이터가 없어도 에러를 발생시키지 않고, 그냥 해당 데이터를 출력하지 않기만 한다. |
header |
HTTP 요청 메시지에 있는 HTTP 헤더의 집합 사용법은 param과 동일 |
headerValues |
HTTP 요청 메시지에 있는 HTTP 헤더의 집합 (똑같은 이름의 HTTP 헤더가 여럿일 때 사용) 사용법은 paramValues와 동일 |
cookie |
웹 브라우저로부터 전송된 쿠기의 집합 [cookie01.jsp] <% Cookie cookie = new Cookie("NAME","CHO"); response.addCookie(cookie); %> [cookieDisplay] cookie name : ${cookie.NAME.value} |
initParam |
웹 애플리케이션의 초기화 파라미터의 집합 ex) [web.xml] 에추가 <context-param> <param-name>DB_NAME</param-name> <param-value>malldb</param-value> </context-param>
<context-param> <param-name>DBConnectionString</param-name> <param-value>oracle-xxxxxxxx</param-value> </context-param> [InitParamTest.jsp] <body> DB NAME : ${initParam.DB_NAME} DB Connection String : ${initParam.DBConnectionString} </body> |
pageContext |
JSP 페이지의 환경 정보의 집합 그러므로 PageContext 클래스의 API 규격서를 찾아서 확인 한다. 예) EL에서 사용할땐 get 이라는 단어를 땐다. ${pageContext.request} : JSP 페이지의 request 내장 변수의 값과 동일하기 때문에 아래와 같이 request의 get메서드 값을 가져올때 사용될 수 있다. <% request.getLocalName(); request.getRequestURI(); %> 는 다음과 같이 사용할 수 있다.
${pageContext.request.localName} ${pageContext.request.requestURI}
|
'나는 엔지니어 > JSP' 카테고리의 다른 글
cleases 폴더 보기 (0) | 2012.07.11 |
---|---|
JSTL : import (0) | 2012.07.11 |
JSTL (0) | 2012.07.11 |
한글 깨질때.. (0) | 2012.07.11 |
톰캣 context.xml 을 이용한 데이터베이스 연결 (0) | 2012.07.10 |