영역객체란
JSP에서 제공하는 내장객체 중 영역과 관련된 속성을 가질 수 있는 객체들이다.
속성 (Attribute) : 공유되는 데이터
영역 (Scope) : 속성을 공유할수있는 유효범위.
JSP 영역(Scope)의 종류
- page 영역 : 다른 내장객체 호출, 페이지 흐름제어, 에러데이터 추출 등 jsp 페이지 정보를 저장하는 객체이다.
- request 영역 : 페이지 요청시 정보를 저장하는 객체이다. 페이지 이동 시 정보를 가지고 이동한다
- session 영역 : 하나의 웹 브라우저당 하나씩 생성되며, 정보를 유지하는 객체이다. 세션이 종료되는 순간에 반환된다.
- application 영역 : 서버 자체의 정보, 서버 이벤트 로그 등 웹 어플리케이션 (프로젝트)정보를 저장하는 객체이다. 프로젝트당 1개만 생성된다.
속성의 유효범위
영역 | 영역객체 | 속성의 유효범위 |
page | pageContext | 해당 페이지가 클라이언트에 서비스를 제공하는 동안에만 유효하다. (서블릿 인스턴스의 _jspServicer()메소드가 실행되는 동안에만 유효하다.) |
request | request | 클라이언트의 요청이 처리되는 페이지에서만 유효하다. (포워딩 또는 include를 이용하는 경우 여러개의 페이지에서도 요청정보가 계속 유지되므로 request영역의 속성을 여러페이지에서 공유할 수 있다.) |
session | session | 세션이 유지되는 동안 모든 페이지에서 유효하다. (하나의 브라우저에 1개의 세션이 생성되므로 같은 웹브라우저내에서 실행되는 페이지들이 속성을 공유할 수 있다.) |
application | application | 웹 애플리케이션이 실행되고 있는 동안 프로그램의 모든 페이지에 유효하다. (웹 컨테이너에서 해당 어플리케이션은 오직 하나만이 실행되므로 4가지 영역중 가장 큰 영역에 해당한다.) |
영역객체의 속성 처리 메소드
메소드 | 리턴타입 | 설명 |
setAttribute(String name, Object value) | void | 해당 정보를 저장한다. 이름이 name인 속성의 값을 value로 지정한다. |
getAttribute(String name) | Object | 해당 정보를 가져온다. 이름이 name인 속성의 값을 구한다. 지정한 이름의 속성이 존재하지 않을 경우 null을 리턴한다. |
removeAttribute(String name) | void | 정보를 제거한다. 이름이 name인 속성을 삭제한다. |
getAttributeNames() | java.util.Enumeration | 모든 속성들의 이름을 가져온다. 속성의 이름 목록을 구한다. (PageContext 기본 객체는 이 메소드를 제공하지 않는다.) |
속성의 사용
영역 | 영역객체 | 사용 용도 |
page | pageContext | 주로 커스텀 태그에서 새로운 변수를 추가할 때 사용한다. 하나의 JSP페이지 내에서 공유될 값을 저장한다. |
request | request | 한번의 요청을 처리하는데 사용되는 모든 JSP페이지 내에서 공유될 값을 저장한다. 주로 하나의 요청을 처리하는데 사용되는 JSP페이지 사이에서 정보를 전달하기 위해 사용한다. |
session | session | 한 사용자와 관련된 정보를 JSP들이 공유하기 위해서 사용한다. 사용자의 로그인 정보와 같은 것들을 저장한다. |
application | application | 모든 사용자와 관련해서 공유할 정보를 저장, 임시 디렉터리 경로와 같은 웹 어플리케이션의 설정 정보를 주로 저장한다. |
'프로그래밍 > JSP' 카테고리의 다른 글
[JSP]JDBC (자바 & MySQL데이터베이스 연동) (0) | 2021.04.08 |
---|---|
[JSP]쿠키와 세션 (0) | 2021.04.01 |
[JSP]액션태그 (0) | 2021.03.30 |
[JSP]내장객체 (0) | 2021.03.24 |
[JSP]JSP 요소 (0) | 2021.03.24 |