JSP 공부 기록(7)-HttpSession, 세션 내장 객체
my code archive
article thumbnail
반응형
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() 메서드는 현재 세션 아이디를 즉시 만료시키는 기능!!!

->로그아웃 효과를 낼 수 있다.

 

단순히 로그아웃으로만 기억하면 안 된다.!!!

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형