giggs 2022. 8. 1. 11:56

 

 

-- Index --

 

 

session session 활용법 jsp 내장객체
page/request/session/appication req.getSession() requset, session, application 등

 

 

 

 


 

 

 

 

1. session

 

 

1-1. 서버 측의 저장공간 4가지

  • tomcat 안에 data를 저장하는 공간 크게 4가지 있다.
  • page / request / session / application

 

 

 

 

 

 

  • 우리는 request 만 사용하고 있었는데 - 로그인 같은 작업 하는데 문제점 발생
  • 사라지지 않는 공간에다가 담아서 사용해야겠다 – session에서 작업!
  • 클라이언트의 처음 요청이 끝나도 data가 없어지지 않는다. -  다만 일정 시간 지나면 사라진다.
  • +@ application – 전역 느낌 – 요청과 시간 상관없이 tomcat에 계속 존재하는 공간

 


 

1-2.  공간의 크기

  • page < request < session < application
  • # 한 페이지 에서만 <
  • # 한 요청에 대해서 이리저리 <
  • # 전용칸(칸 구분 특정 사람만 접근 가능) <
  • # 공용칸( 누구든지 접근 가능 )

 

 


 

 

 

1-3.  session을 활용한 흐름 파악 

 

 

 

  • 기존에 request 는 서버(tomcat)가 클라이언트의 요청받을 때마다 req, resp 만들었었는데
  • session은 tomcat안에 이미 존재하고 어느 영역을 차지하고 있다.
  • 이 영역에 정보를 담아놓을 수 있다.

  • 홍길동이 서버에 요청 – db 다녀와서 – 홍길동 session에 담아놓은 것
  • 홍길동에게 다른 요청 와도 – 홍길동 session에 있는 정보보고 계속 볼 수 있다~!
  • 다만, 오랫동안 서버에 접속을 하지 않으면 서버(tomcat이 홍길동 session 버려버림 ) 홍길동 다시와도 이제 정보 없어서 새롭게 정보 가져오는 작업 필요

  • # tommcat 껐다킨다?
  • - session도 초기화된다 – session은 tommcat안에 존재하는 것
  • - application도 초기화된다 – tommcat 안에 존재하는 공간이므로

 

 

 


 

1-4. req객체와 session 객체의 차이

 

  • req, resp는 A손님이 와서 주문받고 주고 이런 개념인데,
  • session은 A손님이 마시던 고량주 A손님 전용으로 키핑 해놓는 느낌 – 그 공간은 A손님만 열 수 있다.
  • 일시적으로 만들었다가 사라지는 req, resp 같은 것이 아니라, tomcat안에 계속 존재하는 영역

 

 

 


 

 

swy가 로그인 요청을 하면 session에 가서 한 번 찾아보고 data 있으면 응답할 수 있도록

 

A손님이 고량주 달라고 했는데,,

A손님 전용 창고에 가서 고량주 있으면

이것을 쟁반에(화면에)담아서 주는 방식으로 코딩 가능!!

 

 

 


 

# 세션이 만료되었습니다.

  • - 헬스장 한 달 이용권 끝났다. - 그 칸 오픈해버린다. - 이제 심원용 전용 칸이 아니다.
  • - 서버에서 지정한 시간 안에 다시 접속하지 않으면 – 세션만료 – 시간안에 접속하면 지정된 시간만큼 세션 시간 연장

 

 

 

 


 

 

 

2. 세션 활용법

 

 

2-1 servlet 쪽에서 session 사용할 때는

  • req.getSession() 으로 session 객체 생성 후 사용해야 한다.

 


2-2 jsp 쪽에서 session 사용할 때는

  • jasper가 이미 만들어 준 내장 객체 session 사용
  • jsp가 getSession() 해서 session에 담아주는 작업을 이미 해 주었다.( 내장객체 )
  • 알아서 미리 변수에 담아놓은 것 -
  • jsp가 미리 만들어 둔 - request 객체 사용했듯이 session 객체 사용하면 됨.

2-3. session 활용법

  • 이렇게 session 객체에 data를 저장해 놓으면
  • forward가 아닌 redirect로 새로운 요청에 대해 처리하는 경우에도
  • session에 있는 data를 얻어서 활용할 수 있다. 

 

 

 

 

  • request객체에 담겨져 있는 경우에는 - 새로운 요청시 사라 짐
  • session객체에 담겨져 있는 경우에는 - 새로운 요청이라도 그 사람의 저장된 data 꺼내서 볼 수 있음

 

 

 


 

 

 

3. jsp 내장 객체

 

  • jsp안에는 내장객체라는게 있다.

 

 

+@ 더 많다..

 


 

 

몇 가지 살펴보면

 

 

 

 

 

request 는 클라이언트의 요청마다 만들어주는 저장 공간

 

 

session은 어떤 사람에 대해서 계속 유지되는 저장 공간

( 만료되기 전까지)

 

 

applicationtomcat 전체에서 사용하는 저장 공간

( 심원용,오귀석, 공룡 누구나 사용 가능한 공간

 

 

pageContext 도 있다. -

( 해당 페이지에 대해서만 )

 

 

 

 


 

 

 

My Question )

 

 

session를 생성해서 사용하는 부분에서요

UserLoginServletclass파일이라서 session을 직접 만들어 주어야 하고,,

index.jspjsp파일

- jaspersession을 내장 객체로 만들어주고, 만들어 놓은 거 사용하는 것

이라고 이해했는데 맞나요?

 

Answer) 네 맞아용~