Servlet3

Cookie와 Session

Session Tracking


일정 시간 동안 동일한 사용자의 여러 요청들을 유지 관리하기 위한 기술이다. 웹 애플리케이션과 웹 브라우저 사이에서 정보 교환을 한다.


Cookie는?

client 시스템이 상태 유지하고 하는 값을 저장

데이터 타입 : 문자열만 가능

쿠키 정보는 client가 강제 삭제도 가능

개발 코드

  1. 쿠키 생성 - key와 value로 데이터 구분

    new Cookie(별칭(key), 데이터(문자열))

  2. 쿠키의 잔존 시간 설정

    setMaxAge(초단위)

  3. client 시스템에 저장

    addCookie()

  4. 이동된 web page(servlet or jsp)
    • clinet 시스템에서 쿠키 획득 및 활용
    • Cookie [] c = request.getCookies()
    • getName(“쿠키의 별칭”)
    • getValue()
  5. 쿠키 정보 삭제 방법
    • client 시스템에서 client가 직접 삭제
    • 코드로 client 시스템에 해당 key에 매핑된 정보 삭제

Session


Session은?

server 시스템이 상태 유지하고 하는 값을 저장

데이터 : 제한없이 객체 타입은 다 저장 가능

개발방식

  1. HttpSession 객체 생성

    HttpSession 변수 = request.getSession()

  2. HttpSession에 데이터 저장

    변수.setAttribute(key, value);

  3. 화면이동

    제한없이 이동 가능

  4. HttpSession 재사용해서 획득

    HttpSession 변수 = request.getSession()

  5. HttpSession 데이터 획득 변수.getAttribute(key)
  6. 해당 user만의 고유한 세션 객체 삭제 or 세션에 저장된 데이터(Attribute) 삭제
    • 데이터 하나만 삭제 변수.removeAttribute(key)
    • 세션 객체 자체를 무효화 변수.invalidate()