본문 바로가기
Language/Java

[JSP/Servlet] 객체범위 Scope

Writer mintparc 2019. 12. 9.

객체범위 scope


 

 

 

JSP와 Servlet에는 page, request, session, application 4가지 객체 범위가 있다. 객체범위는 생명주기 동안에 객체를 어느 범위까지 접근할 수 있는지를 설정해준다. 상단의 그림과 같이 application이 가장 넓은 범위를 가지고 page가 가장 좁은 범위이다.

 

 

page

 


  • 해당 페이지 내에서만 적용된다.
  • 클라이언트의 요청을 받으면 JSP 페이지가 응답된다.
  • Page는 해당 페이지 내에서만 객체를 공유한다. 지역변수 같다.
  • pageContext 라는 내장 객체를 사용해서 값을 다룰 수 있다.
  • forward 되더라도 해당 페이지에 지정된 변수를 사용할 수 없다.

 

 

request


  • 하나의 요청을 받고 응답을 보낼 때(다음 페이지)까지 적용된다.
  • JSP : request 내장 변수를 사용한다.
  • Servlet : HttpServletRequest 객체를 사용한다.
  • forward 시 값을 유지한 채 페이지 이동을 할 수 있다.

 

 

session


  • session 객체가 만료될 때까지 적용된다.
  • 하나의 브라우저 당 한 개의 session 객체가 생성되고, 같은 브라우저 내에서 요청되는 페이지들은 같은 session 객체를 공유하게 된다.
  • 주로 로그인 등의 기능에 쓰인다.

 

 

application


  • 하나의 프로그램(프로젝트)이 생성되고 소멸될 때까지 적용된다.
  • 하나의 프로그램 당 하나의 application 객체가 생성되고, 같은 프로그램 내에서 요청되는 페이지들은 같은 application 객체를 공유하게 된다.

댓글