JSP

4 스코프(Scope)

백PM ㅣ 2022. 9. 28. 02:12

웹에서는 변수를 사용할 수 있는 4개의 범위가 있습니다.

그것을 스코프라고 하는데요. 오늘은 스코프의 종류에 대해 알아보겠습니다.

1. Page 영역

JSP 페이지 내에서만 객체가 유효한 영역입니다.

  • pageContext라는 내장 객체를 통해서 접근할 수 있습니다. pageContext이름.setAttribute(), pageContext이름.getAttribute() 등의 방법으로 사용하면 됩니다.
  • JSP 파일에 <% %> 스크립트 태그를 이용하여 변수를 선언하면 이 변수는 해당 JSP 파일 내에서만 유효합니다.
  • forward가 될 경우 해당 페이지의 변수는 사용할 수 없습니다.

2. Request 영역

요청을 받아서 응답하기까지 객체가 유효한 영역입니다.

  • JSP에서는 Request 내장변수를, 서블릿에서는 HttpServletRequest 내장 객체를 통해서 사용합니다. 마찬가지로 request.setAttribute(), getAttribute() 메서드로 사용할 수 있습니다.
  • 메모리가 반환되는 시점은 Servlet의 service()메소드가 끝날 때입니다.
  • Servlet에서 forward 또는 include 태그를 사용하여 다른 페이지로 접근하면 request 객체를 공유하여 사용할 수 있습니다.

3. Session scope

session 객체가 생성되고 소멸될 때까지 객체가 유효한 영역입니다.

  • 서버는 하나의 웹브라우저가 접속할 때마다 세션을 하나 생성합니다.
  • 웹 브라우저간의 탭간에 세션정보가 공유되기 때문에 각각의 탭에서 같은 session 정보를 사용할 수 있습니다.
  • 세션이 소멸하는 시기는 미리 지정된 시간이 지나거나 탭이 닫히는 경우입니다.
  • HttpSession 인터페이스를 구현한 객체를 사용합니다.
  • 서블릿에서는 HttpServletRequest의 getSession() 메서드를 이용하여 session객체를 얻습니다.
  • JSP에서는 session 내장 변수를 사용합니다.
  • 마찬가지로 setAttribute(), getAttribute() 메서드를 사용합니다.

4. Application scope

하나의 application이 생성되고 소멸될 때까지 유지합니다.

application 이란 Eclipse의 하나의 프로젝트라고 생각하면 되고, 하나의 Server는 여러개의 Web application이 존재할 수 있습니다.

  • 어플리케이션이 시작되서부터 종료될 때까지 변수를 사용할 수 있습니다.
  • ServletContext 인터페이스를 구현한 객체를 사용합니다.
  • JSP는 application 내장객체를 이용합니다.
  • Servlet의 경우 getServletContext() 메서드를 이용합니다.
  • getAttribue(), setAttribute() 메서드를 사용합니다.
  • 모든 클라이언트가 공통으로 사용해야 할 값들이 있을 때 사용합니다.

'JSP' 카테고리의 다른 글

서블릿  (0) 2022.09.28