수풀속의고라니 2022. 3. 7. 14:22
728x90

상태 유지를 위한 session 객체

보안과 데이터 기준으로 봤을 때 쿠키보다는 세션이 더 뛰어나기 때문에, 쿠키보다는 세션을 사용

쿠키는 로컬호스트(개인pc)에 저장되며, 세션은 서버에 저장이 된다.

보통 해킹할 때 서버보다는 개인 pc가 더 쉽기 때문에 세션이 더 보안이 뛰어난 것.

또한 저장 용량도 쿠키는 1.2mb가 최대지만, 세션은 제한이 없다.

 

세션과 브라우저의 관계는 브라우저 1개당 세션이 1개씩 존재한다.

 

web.xml : 기본으로 30분이 설정되어 있으며, 30분이 지나면 세션이 끊어진다.

 

- 이클립스에서 확인이 가능하다.

 

session 객체가 제공하는 메소드

 

- 세션이름에 해당하는 값을 가져옴(리턴 타입 : object)

- 모든 세션객체 이름 가져올 때(리턴은 열거형으로)

- 매개변수, 세션 이름 값 설정

- 초단위로 세션값 설정

 

session에 값 저장하기 / 얻어오기

 

- 세션이름을 Testing로 설정하고, 그 안에 ls_test의 값을 담음

- getAttribute : 세션 이름으로 값 가져오기

 

<getAttribute.jsp 예제>

 

 

- set값을 설장하지 않고, get값만 설장한 다음에 실행하면 위와 같은 오류 발생

 

<setAttribute.jsp 예제>

 

 

- 이렇게 set값을 설정한 다음에 get을 실행하면 위와같이 제대로 값을 가져오게 됨

 

getAttributeNames 메소드와 Enumeration 인터페이스

 

- 값이 참이면

- 다음 값을 가져옴

- 반복문에서 사용하는 메소드

세션에 저장된 여러가지 값들을 얻어오기위한 방법

 

- 이전의 예제들인 get과 set들을 모두 실행한 다음에 이 예제를 실행하면 위의 그림처럼 모든 값을 가져오게 됨

세션 정보 얻어오기

 

- 세션 id값

- 세션이 만들어진 시간(리턴 : long)

- 클라이언트가 마지막으로 요청한 시간

- 세션이 처음 만들어졌으면 true 아니면 false

- 기본 30분으로 설정되어있는 web.xml의 메소드

 

<예제>

 

- get~time 메소드의 단위는 밀리초이며, 6만으로 나눈 것은 분단위를 구하기 위함

세션 값 삭제하기

 

- 삭제

- 전체 삭제

 

<예제 - 세션에 저장된 모든 특정 객체 삭제>

 

- 세션 6개를 만든 뒤 1개를 삭제하고 다시 실행하여 5개가 뜨도록

- 만든 예제는 3개 만들고, 1개 삭제해서 2개 뜨도록

 

- s_name2를 삭제한 후에 다시 불러오면 이 세션을 제외하고 출력됨

 

<예제 - 설정된 모든 세션 제거>

 

세션 유효시간 설정

 

 

728x90