Session

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. 세션 사용 시 고려 사항

- 세션은 서버의 메모리를 사용함.

- 세션에 많은 양의 정보를 저장하는 것은 권장하지 않음

- 세션에 많은 양의 정보를 저장할 것 같으면 메모리 디비를 사용하는것을 권장