1. Scope란?
- Scope란 웹 애플리케이션이 동작하는 동안 데이터를 기억하는 범위를 말한다.
- 애플리케이션을 만들 때, 데이터들의 사용 범위를 판단해 적당한 Scope를 설정해주어야 한다.
- 각 Scope별로 Servlet API가 제공하는 내장 객체의 setAttribute / getAttribute 메소드를 통해 값을 저장하여 사용한다.
- getAttribute의 Return Type은 Object이기 때문에, 적당한 타입으로 형변환을 하여 사용한다.

2. Scope의 종류
- Page Scope
- PageContext 내장 객체를 통해 사용한다.
- 데이터를 해당 페이지에서만 사용하고 지운다.
- Redirect는 물론이고, 페이지를 forward할 때에도 저장되지 않는다.
- 지역 변수처럼 해당 jsp나 서블릿이 실행되는 동안에만 정보를 유지하고자 할 때 사용한다.
- 페이지에서 지역변수 선언해서 지워버리는거랑 차이가 없기 때문에, 잘 사용하지 않는다.
- Request Scope
- HttpServlet의 Request 객체를 통해 사용한다.
- forward 방식으로 페이지를 이동할 때 사용한다.
- 현재는 브라우저 탭 간에도 정보 공유가 가능하다.
- Session Scope
- HttpSession의 Session 객체를 통해 사용한다.
- 데이터를 Session이 초기화될 때까지 유지하고자 할 때, 사용한다.
- 같은 페이지라도 서로 다른 브라우저 간에는 데이터를 참조할 수 없다.
- Application Scope
- ServletContext 내장 객체를 통해 사용한다.
- 애플리케이션이 종료될 때까지 사용하고자 하는 데이터에 사용한다.
- 데이터를 계속 저장하고 있는다는 건 서버에 부담이 되기 때문에, 꼭 필요한 경우가 아니라면 사용하지 않는다.
반응형
댓글