Web/Spring

Session Scope

느낌표 공장장 2021. 6. 24. 16:09

Session Scope

 

클라이언트(웹 브라우저) 당 하나의 session 객체가 생성, 관리한다.

 

 

✔︎ 웹 브라우저별로 변수(정보)를 관리하고자 할 경우 사용한다.

✔︎ 세션 객체는 상태 정보를 유지하기 위해 사용한다.

  • 클라이언트마다 세션 정보가 다른데, 예를 들어 사용자마다 로그인 정보가 다른 것처럼 사용자별로 유지가 되어야 할 정보가 있을 때 사용한다.
  • 그래서 각 클라이언트마다 유지해야 하는 정보들을 session scope을 이용해 유지시켜준다.

✔︎ 웹 브라우저간의 탭 간에는 세션정보가 공유되기 때문에, 각각의 탭에서는 같은 세션정보를 사용할 수 있다.

✔︎ session 객체는 프로그래밍 할 때 적당한 시간을 지정한다던가 혹은 브라우저가 닫히게 된다던가 이런 특성에 따라서 없어진다.

✔︎ HttpSession 인터페이스를 구현한 객체를 사용한다.

✔︎ JSP에서는 session 내장 변수를 사용한다.

  • 값을 저장할 때 : session.setAttribute()
  • 값을 읽어 들일 때  : session.getAttribute()
  • 실제 요청이 들어갔을 때, 클라이언트에 대한 정보를 알아야 한다. 그래야 이 session이 어떤 클라이언트 것인 줄 알아내야 하기 때문에 request가 setAttribute(), getAttribute()를 이용해 세션을 얻어낼 수 있다. 

✔︎  서블릿에서는 HttpServletRequest의 getSession()메소드를 이용하여 session 객체를 얻는다.

 

 

* Request Scope과 차이

  • 하나의 요청이 들어왔을때들어왔을 때 생기는 것은 request scope이고 이는 브라우저 별로 생긴다. 그래서 어떤 요청이 들어왔을 때 응답을 받고 request, response 객체는 없어지지만 session 객체는 없어지지 않는다.
  • session은 request보다 훨씬 오래 정보를 유지한다.
  • 클라이언트가 계속 한 페이지를 요청하는 것이 아니라 다음에 또 요청하고 또 요청하는 상황일 때 사용할 수 있다.

 

 

 


참조

부스트코스 - 웹 프로그래밍 강의를 바탕으로 제작된 게시물입니다.

https://www.boostcourse.org/web316/lecture/16711?isDesc=false 

 

 

 

'Web > Spring' 카테고리의 다른 글

스프링 프로젝트 환경설정  (0) 2021.07.20
Application Scope  (0) 2021.06.24
request scope  (0) 2021.06.24
Page scope  (0) 2021.06.24
Scope  (0) 2021.06.24