본문 바로가기
JSP&Servlet

JSP 내장객체 영역 정리(page/request/session/application)

by 자바비터 2022. 3. 22.

▶ JSP에서 내장객체란?

웹 컨테이너에서 객체 생성없이 바로 사용할 수 있도록 제공하는 객체이다.

   

  

▶ 내장객체의 영역이란?

각 객체가 저장되는 메모리의 유효기간으로 4가지의 영역으로 구성된다.

영역 크기 순으로 application > session > request > page 순이다.

각 영역의 접근범위는 다르지만, 제공하는 메소드는 모두 동일하며 "영역명.메소드명()"과 같은 형태로 사용할 수 있다.

  

  

▶ 내장객체 기본 메소드

void setAttribute(String name, Object value)

: 각 영역에 속성을 저장.

첫번째 인수는 속성명, 두번째 인수는 정할 값

값의 타입은 Object이므로 모든 타입의 객체 저장 가능

 

object getAttribute(String name)

: 영역에 저당된 속성값을 얻어옴

object로 자동 형변환되어 저장되므로 원래 타입으로 형변환 사용

 

void removeAttribute(String name)

: 영역에 저장돈 속성을 삭제

삭제할 속성명이 존재하지 않더라도 에러는 발생하지 않음

  

  

▶ page 영역 (가장 작은 영역)

: 동일한 페이지에서만 공유되어 페이지를 벗어나면 소멸된다. → pageContext 객체를사용

 

- page 영역은 기본적으로 클라이언트의 요청을 처리하는 JSP마다 하나씩 생성되며 각 JSP는 page영역을 사용하기 위한 pageContext 객체를 할당 받는다.

- include 지시어를 통해 포함시킨 파일은 같은 페이지이므로 page영역을 공유하며 링크를 통해 다른 페이지로 이동하면 page영역에 데이터는 소멸된다.

 

page 영역에 속성 저장 : pageContext.setAttribute(속성명, 값);

page 영역에 속성 읽기 : pageContext.getAttribute(속성명);

  

  

▶ request 영역

: 하나의 요청에 의해 호출된 페이지와 포워드(요청 전달)된 페이지까지 공유된다. → request 객체를 사용

 

- 클라이언트가 요청할 때마다 새로운 request 객체가 생성되며 request 영역은 같은 요청을 처리하는 데 사용되는 모든 JSP가 공유된다.

- 즉, 현재 페이지와 포워드(forward)된 페이지까지 공유된다.

- 단, 다른 페이지로 이동하면 request영역에 저장된 데이터는 소멸된다.

- 요청에 대한 응답이 완료될 때 소멸되므로 page영역보다 접근 범위가 조금 더 넓다.

 

request 영역에 속성 저장 : request.setAttribute(속성명, 값);

request 영역에 속성 읽기 : request.getAttribute(속성명);

 

*포워드(forward)란 간단하게 말하면 현재 페이지로 들어온 요청을 다음 페이지로 전달하여 요청을 수행하는 기능을 말함.

형식 : request.getRequestDispatcher("포워드할 파일 경로".forward(request,response);

  

  

▶ session 영역

: 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유된다. → session 객체를 사용

 

- 세션(session)이란 클라이언트가 서버에 접속해 있는 상태 혹은 단위를 뜻한다.

- 웹 브라우저를 최초로 열고난 후 닫을 때까지 요청되는 모든 페이지는 session 영역을 공유한다.

- 주로 회원인증 후 로그인 상태를 유지하는 처리에 사용되며, 포털 사이트에서 로그인 후 웹 브라우저를 닫으면 자동으로 로그아웃이 되는 것이 session 객체의 특성 때문이다.

 

session 영역에 속성 저장 : session.setAttribute(속성명, 값);

session 영역에 속성 읽기 : session.getAttribute(속성명);

  

  

▶ application 영역 (가장 큰 영역)

: 한 번 저장되면 웹 애플리케이션이 종료될 때까지 유지된다. → application 객체를 사용

 

- 웹 애플리케이션은 단 하나의 application 객체를 생성하며 클라이언트가 요청하는 모든 페이지에서 application 객체를 공유한다.

- application 객체는 웹 서버를 시작할 때 만들어지며, 웹 서버를 종료할 때 삭제 됨

- 따라서 application 영역에 한 번 저장된 정보는 페이지를 이동하거나, 웹 브라우저를 닫았다가 새롭게 접속해도 삭제되지 않는다.

 

application 영역에 속성 저장 : application.setAttribute(속성명, 값);

application 영역에 속성 읽기 : application.getAttribute(속성명);

 

'JSP&Servlet' 카테고리의 다른 글

오라클 DB연동시 한글깨짐 현상 해결하기  (0) 2022.04.18

댓글