Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/7월
22.07.25 - [ WAS ] session, jsp내장객체
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은 어떤 사람에 대해서 계속 유지되는 저장 공간
( 만료되기 전까지)
application은 tomcat 전체에서 사용하는 저장 공간
( 심원용,오귀석, 공룡 누구나 사용 가능한 공간)
pageContext 도 있다. -
( 해당 페이지에 대해서만 )
My Question )
session를 생성해서 사용하는 부분에서요
UserLoginServlet은 class파일이라서 session을 직접 만들어 주어야 하고,,
index.jsp는 jsp파일
- jasper가 session을 내장 객체로 만들어주고, 만들어 놓은 거 사용하는 것
이라고 이해했는데 맞나요?
Answer) 네 맞아용~