Scope
Scope
내장객체의 영역 Scope
내장객체의 영역이란
- 각 객체가 저장되는 메모리의 유효기간
page 영역: 동일한 페이지에서만 공유 –> 페이지를 벗어나면 소멸request 영역: 하나의 요청에 의해 호출된 페이지와 포워드(요청전달)된 페이지까지 공유session 영역: 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유application 영역: 한 번 저장되면 웹 어플리케이션이 종료될 때까지 유지
범위의 크기 : application > session > request > page
영역이 제공하는 주요 메서드
void setAttribute(String name, Object value)
- 각 영역에 속성을 저장
- 첫 번째 인수는 속성명, 두 번째 인수는 저장할 값
- 값의 타입은 Object이므로 모든 타입의 객체를 저장
Object getAttribute(String name)
- 영역에 저장된 속성값을 얻음
- Object 로 자동 형변환되어 저장 –> 원래 타입으로 형변환 후 사용
void removeAttribute(String name)
- 영역에 저장된 속성을 삭제
- 삭제할 속성명이 존재하지 않더라도 에러는 발생하지 않음
데이터 전송 객체(DTO)
- Data Transfer Object
- 주로 데이터를 저장하거나 전송하는 데 쓰이는 객체
- 다른 로직 없이 순수하게 데이터만을 담음
- 데이터만 가지고 있는 객체라 하여 값 객체(value Object, VO)라고도 함
- JavaBeans 규약에 따라 작성
자바빈즈 규약
- 자바빈즈는 기본(default) 패키지 이외의 패키지에 속해야 함
- 멤버 변수(속성)의 접근 지정자는 private 로 선언
- 기본 생성자가 있어야 함
- 멤버 변수에 접근할 수 있는 getter/setter 메서드가 있어야 함
- 게터/세터 메서드의 접근 지정자는 public 선언
page 영역
- 기본적으로 클라이언트의 요청을 처리하는 데 관여하는 JSP 페이지마다 하나씩 생성
- 각 JSP 페이지는 page 영역을 사용하기 위한 pageContext 객체를 할당
- pageContext 에 저장된 정보는 해당 페이지에서만 사용가능 –> 페이지를 벗어나면 소멸
- include 지시어로 포함한 파일은 하나의 페이지로 통합되어 page 영역이 공유
request 영역
- 클라이언트가 요청을 할 때마다 새로운 request 객체가 생성
- 같은 요청을 처리하는 데 사용되는 모든 JSP 페이지가 공유
- 저장된 정보는 현재 페이지와 포워드된 페이지까지 공유
- 단, 페이지 이동 시에는 소멸되어 사용할 수 없음
- 즉 하나의 요청에 대한 응답이 완료될 때 소멸
session 영역
- 클라이언트가 웹 브라우저를 최초로 열고난 후 닫을 때까지 요청되는 모든 페이지는 session 객체를 공유
- 클라이언트가 서버에 접속해 있는 상태 혹은 단위가 session
- 주로 회원인증 후 로그인 상태를 유지하는 처리에 사용 –> 포털사이트에서 웹 브라우저를 닫으면 자동 로그아웃
application 영역
- 웹 어플리케이션은 단 하나의 application 객체만 생성
- 클라이언트가 요청하는 모든 페이지가 application 객체를 공유
- 웹 서버를 시작할 때만 들어가지며, 웹 서버를 내릴 때 삭제
- 영역에 한 번 저장된 정보는 페이지를 이동하거나, 웹 브라우저를 닫았다가 새로 접속해도 삭제되지 않음
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.