📘웹서비스프로그래밍

세션

  • 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
  • 웹 서버에서만 접근이 가능하므로 보안 유지에 유리하며 데이터를 저장하는데 한계가 없음
  • 서버쪽에 데이터를 저장함
  • 오직 웹 서버에 존재하는 객체로 웹 브라우저마다 하나씩 존재하므로 웹 서버의 서비스를 제공받는 사용자를 구분하는 단위가 됨
  • 웹 브라우저를 닫기 전까지 웹 페이지를 이동하더라도 사용자의 정보가 웹 서버에 보관되어 있어 사용자 정보를 잃지 않음
  • 때의 따라 다름 (보안이 철저한 은행은 시간이 지나면 세션이 닫힘,웹 브라우저를 닫아도 계속 유지되게 할 수도 있음)
  • 종료 시점은 정확한 시점을 알 수 없음(위에 이유)

세션의 내장 객체 메소드 종류

  • Object getAttribute(String name) 반환 유형 Object(뭐가 들어올지 몰라 Object) 처음 만들때 사용

    String id = (String)session.getAttribute(“memberId”);

  • void removeAttribute(String name) 반환 유형 void 삭제 할때 사용

    session.removeAttribute(“memberId”);

  • void setAttribute(String name,Object value) 반환 유형 void 처음 만들거나 기존에 있는거를 수정할때 사용

    session.setAttribute(“memberId”,admin”);

  • void invalidate() 세션에 저장된 모든 세션 속성 이름을 삭제

    session.invalidate()

  • void setMaxInactiveInterval(int interval) 세션을 유지하기 위한 세션의 일정 시간

    session.setMaxInactiviveInterval(60*60);

쿠키

  • 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
  • 쿠키는 세션과 달리 상태 정보를 웹 서버가 아닌 클라이언트에 저장
  • 웹 서버의 부하를 줄일 수 있따는 장점
  • 웹 브라우저가 접속했던 웹 사이트에 관한 정보와 개인 정보가 기록되기 때문에 보안에 문제가 있음
  • 생성된 쿠키는 응답 데이터에 함께 저장되어 웹 브라우저에 전송됨
  • 종료 시점은 쿠키 저장 시 설정(설정하지 않을 경우 브라우저 종료 시 소멸)

쿠키의 메소드

  • Cookie Cookie(String name, String value) 쿠키를 생성 (생성한 후에는 반드시 response 내장 객체의 addCookie()메소드로 쿠키를 설정해야됨)

    Cookie cookie = new Cookie(“memberId”,”admin”);

    response.addCookie(cookie)

  • Cookie[] request.getCookies() 클라이언트에 저장된 모든 쿠키 객체를 가져오려면 request 내장 객체의 getCookies()메소드를 사용, 쿠키 객체가 여러 개일 때는 배열 형태로 가져옴

    Cookie[]cookies = request.getCookies();

    out.println(cookies[i].getName())

  • void setMaxAge(int age) 쿠키 삭제 쿠키의 유효 기간을 결정하는 setMaxAge()메소드에 유효기간을 0으로 설정하여 쿠키 삭제

    Cookie cookie = new Cookie(“memberId”,”admin”);

    cookie.setMaxAge(0);

    response.addCookie(cookie);

** 하지만 세션 아이디는 여전히 남아 있기 때문에 다 지워도 쿠키의 개수는 1

태그:

카테고리:

업데이트: