2020. 6. 17. 17:13ㆍ카테고리 없음
Session
- 자료형은 HttpSession
- jsp파일에는 처음부터 존재하고 다른 곳에서 사용하고자 할 때는
request객체.getSession()으로 리턴받아서 사용
- 하나의 브라우저에서 서버에 접속을 하면 그 브라우저를 위한 Map을 서버에
하나 생성하는데 이 Map을 Session이라고 함.
- 사용자가 10명까지 접속할 수 있다라는 얘기는 Session을 10개까지 생성할 수 있다라는 의미
- Session이라는 말 대신 Token이라는 단어를 이용하기도 함
1. 용도
- 브라우저가 접속을 시작해서 종료할 때까지 유지해야 하는 데이터를 저장하는것이 목적
ex) 로그인 정보, 장바구니 정보
2. 저장
1) 데이터 저장: void setAttribute("이름",데이터)
2) 데이터 읽기: Object getAttribute("이름"); -> 데이터를 사용할 때는 원래의 자료형으로 강제 형변환해서 사용
3) 데이터 삭제: void removeAttribute("이름")
4) 데이터 수정: 존재하는 이름을 이용해서 저장하면 수정
3. 세션 초기화(모든 데이터 삭제, ex) 로그아웃)
1) 세션 객체가 invalidate() 호출
2) web.xml 파일에 설정
<session-config>
<session-timeout> 분단위시간</session-timeout>
</session-config>
-> 설정한 시간동안 세션을 사용하지 않으면 초기화되는 시간을 설정(ex) 몇분동안 활동 없을시 자동 로그아웃)
4. 로그인 처리
- 아이디와 비밀번호를 입력해서 로그인 시도하면, 디비에 가서 확인하고 맞으면 그 때 필요한 정보(아이디나 닉네임)를 세션에 저장
하고, 이 후의 로그인 여부는 세션에 저장된 데이터를 가지고 판단하며 로그아웃은 세션에 저장된 데이터를 삭제하는 형태.
5. 세션 사용 시 고려 사항
- 세션은 서버의 메모리를 사용함.
- 세션에 많은 양의 정보를 저장하는 것은 권장하지 않음
- 세션에 많은 양의 정보를 저장할 것 같으면 메모리 디비를 사용하는것을 권장