본문 바로가기
JAVA/SERVLET

[JAVA] Scope

by melll93 2023. 2. 18.

1. Scope란?

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

 

 

2. Scope의 종류

  1. Page Scope
    • PageContext 내장 객체를 통해 사용한다.
    • 데이터를 해당 페이지에서만 사용하고 지운다.
    • Redirect는 물론이고, 페이지를 forward할 때에도 저장되지 않는다.
    • 지역 변수처럼 해당 jsp나 서블릿이 실행되는 동안에만 정보를 유지하고자 할 때 사용한다.
    • 페이지에서 지역변수 선언해서 지워버리는거랑 차이가 없기 때문에, 잘 사용하지 않는다.


  2.  Request Scope 
    • HttpServlet의 Request 객체를 통해 사용한다.
    • forward 방식으로 페이지를 이동할 때 사용한다.
    • 현재는 브라우저 탭 간에도 정보 공유가 가능하다.


  3.  Session Scope
    • HttpSession의 Session 객체를 통해 사용한다.
    • 데이터를 Session이 초기화될 때까지 유지하고자 할 때, 사용한다.
    • 같은 페이지라도 서로 다른 브라우저 간에는 데이터를 참조할 수 없다.


  4.  Application Scope
    • ServletContext 내장 객체를 통해 사용한다.
    • 애플리케이션이 종료될 때까지 사용하고자 하는 데이터에 사용한다.
    • 데이터를 계속 저장하고 있는다는 건 서버에 부담이 되기 때문에, 꼭 필요한 경우가 아니라면 사용하지 않는다.
반응형

댓글