HttpSession
웹 클라이언트 자원만 이용하는 쿠키와는 달리
세션 관리를 위한 정보를 웹 서버가 생성하고 보관하여 관리한다는 점에서 차이를 보인다.
- HttpSession의 동작
1. 웹 클라이언트 최초 서비스 요청(접속)
2. 웹 컨테이너는 세션 아이디를 생성하여 부여
3. 생성된 세션 아이디는 웹 클라리언트와 웹 서버 양측 모두 임시 저장
4. 웹 클라이언트는 다시 서비스 요청(접속) 시 보유하고 있던 세션 아이디를 함께 전송
5. 웹 서버는 세션 아이디가 저장된 메모리를 검색하여 유효한 세션 아이디인지 구분
6. 웹 컨테이너에 보관된 세션 아이디는 유효 기간 만료 시 소멸, 웹 브라우저가 부여받은 세션 아이디를
전송해도 웹 컨테이너가 보유한 세션 아이디와 매칭되는 아이디가 없으므로 세션 종료
**쿠키 : 도장으로 찍어주는 카페 쿠폰
-->웹 클라이언트에만 저장, 유지되는 방식
**세션 : 기차표, 비행기표
->클라이언트의 표에 번호나 좌석번호 같은 게 있다.
->표 판매처에서도 이 표에 대한 정보를 가지고 있다.->유효 기간이 있다. (ex)2시 기차 예약했다면 3시 기차에 그 표 사용 못한다.)
-->웹 클라이언트에 저장된 데이터를 웹 서버에서도 관리하고 있다.
세션 내장 객체
-getAttribute() : session 객체에 저장된 속성 반환
-setAttribute() : session 객체 속성 저장
-removeAttribute() : session 객체에 저장된 속성 제거
-getId() : session ID 값 반환
-getMaxInactiveInterval() : 세션 유효 시간 반환
-setMaxInactiveInterval() : 세션 유효 시간 설정
-invalidate() : 현재 세션 정보 제거(★★★★★)
세션 속성 지정
setAttribute() 사용
removeAttibute()사용
removeAttribute()를 사용했기 때문에 [null]로 출력됨.
세션 유효 시간
- setMaxInactiveInterval() 사용
- 30초로 설정했기 때문에 30초가 지나면 유효 시간이 만료됨.
30초 후에는 유효시간이 만료되어 다른 아이디를 발급해준다.
★★★★★만료 후에는 데이터도 null값이 된다!!!
세션 종료
세션 종료 조건은 크게 세 가지가 있다.
-웹 브라우저 종료
-세션 유효시간 만료
-session 내장객체 invalidate() 메서드 사용
로그아웃 버튼 생성
session.invalidate(), 리다이렉트 사용
invalidate() 메서드는 현재 세션 아이디를 즉시 만료시키는 기능!!!
->로그아웃 효과를 낼 수 있다.
단순히 로그아웃으로만 기억하면 안 된다.!!!
'📒 education archive > 📍Servlet, JSP' 카테고리의 다른 글
JSP 공부 기록(9)-JDBC 프로그래밍, 데이터 삽입, 예제 (0) | 2021.09.04 |
---|---|
JSP 공부 기록(8)-jsp 액션태그 (0) | 2021.08.29 |
JSP 공부 기록(6)-쿠키(Cookie), 아이디 저장 기능 로그인 예제 (0) | 2021.08.22 |
JSP 공부 기록(5)-세션 관리, URL Rewriting, Hidden Field, 예제 (0) | 2021.08.22 |
JSP 공부 기록(4)-JSP 에러 처리, 예제 (0) | 2021.08.21 |