티스토리 뷰

 

<Servlet & JSP의 4가지 Scope>

Page Scope -> Request Scope -> Session Scope -> Application Scope

뒤로 갈수록 범위가 넓어짐.

 

1) Page Scope: 한 페이지에서만 유지, 지역변수처럼 사용

- PageContext라는 추상 클래스 사용

- PageContext라는 JSP 내장 객체가 있음

- 한 페이지 내에서만 유지되는 것이므로 forward로 다른 페이지로 넘어가면 소멸됨

- 지역변수처럼 사용하지만 지역변수와 완전히 같은 것은 아님 (나중에 EL, JSTL을 배우면 안다?)

- pageContext.setAttribute() / getAttribute() 로 저장했다가 뺐다가 하면 됨 (다른 scope들도 다 비슷함)

 

2) Request Scope: 하나의 Request를 받아서 클라이언트에게 Response할 때까지 변수가 유지

- HttpServletRequest 객체 사용

> JSP에서는 request 내장 객체 사용

> 서블릿에서는 HttpServletRequest 객체 사용

- request.setAttribute / getAttribute() 로 사용

- 하나의 Request가 끝나서 Response가 돌아갈 때까지 유지되므로, forward시 값을 유지할 수 있다

> redirect의 경우 Request가 자동으로 하나 더 생성되는 것이므로 값이 끝까지 유지되지 않음

 

3) Session Scope: 세션 객체의 생성 - 소멸까지 유지, 즉 웹 브라우저별로 변수가 유지

- 로그인 정보, 장바구니처럼 사용자별로 유지되어야 하는 정보

- 브라우저에서 탭 여러개를 열어도 탭끼리 세션정보가 공유되므로 여러 탭에서 같은 세션정보를 사용할 수 있다

- HttpSession 인터페이스를 구현한 객체를 사용

> JSP에서는 session 내장 객체 사용

> 서블릿에서는 HttpServletRequest의 getSession() 메서드를 이용해서 session 객체를 얻어야 함

- session.setAttribute() / getAttribute() 사용

 

4) Application Scope: 웹 App이 시작되고 종료될 때까지 변수가 유지

- 하나의 프로젝트 = 하나의 웹 App = 하나의 application 객체

- 하나의 웹 App을 사용하는 모든 클라이언트가 공통으로 사용해야 할 값들이 있을 때 사용

- ServletContext 인터페이스를 구현한 객체를 사용

> JSP에서는 application 내장 객체 사용

> 서블릿에서는 getServletContext() 메서드를 이용하여 application 객체 이용

- application.setAttribute() / getAttribute() 사용

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함