Servlet 과 JSP 를 개발하다보면 변수를 많이 다루게 됩니다. 어떤 변수는 웹 어플리케이션에서 공유하고 싶은 변수가 있을 수도 있고, 어떤 변수는 사용자 별로 유지하고 싶은 변수가 있을 수 있습니다. 또 어떤 변수는 포워딩 되는 동안 유지하고 싶은 변수가 있습니다. 이렇게 변수를 어떤 범위 내에서 사용하기 위해서는 스코프 scope 라는 것에 대해서 알아야 합니다. 이번 시간에는 scope 에 대해서 알아보도록 하겠습니다.
scope
웹 프로그래밍을 하다 보면 이미 설정된 객체들이 있습니다. 이런 객체들은 4가지의 scope 을 가지고 있습니다. Application scope 는 하나의 어플리케이션이 생성되어서 어플리케이션이 소멸될 때까지 유지되는 scope 입니다. 범위가 제일 큰 scope 입니다.
Sessionscope 세션 스코프는 하나의 세션 객체가 생성되어서 세션 객체가 소멸될 때 까지입니다. request scope 이 하나의 요청이 들어와서 나갈 때 까지만 유지되었다면 Session scope 는 요청이 하나가 아니라 여러 개의 요청이 들어와도 남아있는 scope 을 의미합니다. 상태유지를 할 때 사용하는 scope 이 Session scope 입니다.
Request scope 는 클라이언트가 요청을 보내고 서버가 응답을 보낼 때 까지 계속 사용할 수 있는 scope 입니다. 앞선 강의에서 forward 를 사용했을 때 request 객체에 담긴 변수들은 다른 페이지에서도 같은 것을 확인할 수 있었습니다.
Page scope 는 Servlet 이 되었든 JSP 가 되었든 해당 페이지 에서만 사용할 수 있는 scope 입니다.