본문 바로가기

프로그래밍/JSP

[JSP]영역객체와 속성

영역객체란

 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