객체범위 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 객체를 공유하게 된다.
댓글