JAVA

세션을 이용한 웹 페이지 연동 기능

정숙씨의 쏠쏠한 코딩 2021. 8. 21. 00:24
  • 세션이란
    • 웹 페이지들 사이의 공유 정보를 서버에 저장해 두고 웹 페이지들을 매개해 주는 방법 쿠키와 같은 기능
    • 쿠키와 다르게 서버 메모리에 생성되기 때문에 보안성에 적합
    • 세션은 각 브라우저당 한개 즉 사용자당 한개가 생성된다.
  • 세션 특징
    • 세션의 정보는 서버의 메모리에 저장된다.
    • 브라우저의 세션 연동은 세션 쿠키를 이용한다.
    • 쿠키보다 보안에 유리하다.
    • 서버에 부하를 줄수있다.
    • 브라우저(사용자)당 한개의 세션(세션id)가 생성된다.
    • 세션은 유효시간을 가진다(기본 유효 시간은 30분 입니다.)
    • 로그인 상태 유지 기능이나 쇼핑몰의 장바구니 담기 기능등에 주로 사용된다
  • 세션 API의 특징과 기능
    • 서블릿에서 세션 이용시 HttpSession 클래스 객체를 생성해서 사용 해야 한다.
    • getSession() 메서드 종류
      • getSession()
        • 기존의 세션 객첼가 존재하면 반환을 하고 없으면 새로 생성된다
      • getSession(true)
        • 기존의 세션 객체가 존재하면 반환하고 없으면 새로 생성된다.
      • getSession(false)
        • 기존의 세션 객체가 존재하면 반환하고 없으면 null을 반환한다.
    • HttpSession 클래스 메서드
      • getAttribute(String name)
        • 속성 이름이 name인 속성 값을 Object 타입으로 반환한다, 해당되는 속성 이름이 없을경우 null값을 반환한다.
      • geteAttributeNames()
        • 세션 속성 이름들을 Enumeration 객체 타입으로 반환
      • getCreationTime()
        • 1970년 1월 1일 0시 0초를 기준으로 현재 세션이 생성된 시간까지 경과한 시간을 계산하여 1/1000초 값으로 반환 한다
      • getId()
        • 세션에 할당된 고유 식별자를 String 타입으로 반환
      • getMaxInactiveInterval()
        • 현재 생성된 세션을 유지하기 위해 설정된 세션 유지 시간을 int 타입으로 반환한다.
      • invalidate()
        • 현재 생성된 세션을 소멸한다.
      • isNew()
        • 최초로 생셩된 세션인지 기존에 생성되어 있었던 세션인지 판별
      • removeAttribute(String name)
        • 세션 속성 이름이 name인 속성을 제거한다.
      • setAttribute(String name, Object value)
        • 세션 이름이 name인 속성에 속성 값으로 value를 할당한다.
      • setMaxInactiveInterval(int interval)
        • 세션을 유지하기 위한 세션 유지 시간을 초 단위로 설정