2 minute read

JSP - 7

  • 세션 (중요!)
    • 장바구니 페이지 만들기
  • 쿠키
    • 주문 처리 페이지 만들기



세션(session) - 1. 개요

  • 세션이란,
    • 클라이언트와 웹 서버 간의 상태를 지속적으로 유지 하는 것
    • 웹 서버에서만 접근 가능 => 보안 유리
    • 오직 웹 서버에 존재하는 객체, 웹 브라우저마다 하나씩 => 사용자 구분하는 단위로
  • session 내장 객체 메서드
    • 세션 속성 이름마다 값 설정, 세션 유지시간 설정, 속성 삭제 등
    • 반환형 Object인 메서드는 반드시 형 변환 필요!!
메서드 반환형 설명
getAttribute() java.lang.Object 세션 속성 이름이 name인 속성값을 Object형으로 반환
getAttributeNames() java.util.Enumeration 세션 속성 이름을 Enumeration 객체 타입으로 반환
getId() java.lang.String 세션에 할당된 고유 아이디를 String형으로 반환
setAttribute(String name, Object value) void 세션 속성 name 에 value 값 할당
removeAttribute(String name) void 세션 속성 name을 제거
invalidate()   현재 세션에 저장된 모든 세션 속성 제거



세션(session) - 2. 생성

  • 세션 사용을 위한 세션 생성
    • setAttribute() 메서드 사용

      void setAttribute(String name, Object value)



세션(session) - 3. 세션 정보

  • session 내장 객체, getAttribute() / getAttributeNames() 를 통해 세션 정보 확인 가능

  • 단일 세션 정보 얻기

    • getAttribute() 메서드 사용
    • 반환형 Object이므로 반드시 형변환!

getAttribute

  • 다중 세션 정보 얻기
    • getAttributeNames() 메서드 사용
    • 반환형 Enumeration이므로, java.util.Enumeration 임포트 해야 함

getAttributeNames



세션(session) - 4. 세션 삭제

  • 유지할 필요가 없어진 세션
    • removeAttribute() 또는 invalidate() 메서드 사용
    • 사용 중이던 session 내장 객체 삭제되면서, 저장되어 있던 속성도 모두 삭제됨!
  • 단일 세션 삭제
    • removeAttribute() 메서드 사용
    • ex. session.removeAttribute("memberId");
  • 다중 세션 삭제
    • invalidate() 메서드 사용
    • ex. session.invalidate();



세션(session) - 5. 세션 유효 시간 설정

  • 세션을 유지하기 위한 일정한 시간
    • 브라우저에 마지막 접근한 시간부터, 설정한 시간 이내에 접근이 없다면 자동으로 세션 종료!
    • 초 단위로 설정 (기본값 1,800초)
    • ex. session.setMaxInactiveInterval(60 * 60);






쿠키(cookie) - 1. 개요

  • 쿠키란,
    • 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법 ( = 세션)
    • 상태 정보를 웹 서버가 아닌 클라이언트에 저장 ( != 세션)
  • 쿠키 동작 과정
    • (1) 생성: 최초 웹 브라우저의 요청을 받은 웹 서버에서 생성하여 응답!
    • (2) 저장: 응답 데이터에 포함된 쿠키를 웹 브라우저 쿠키 저장소에 저장!
    • (3) 전송: 요청이 있을 때마다 저장된 쿠키를 웹 서버에 전송 -> 웹 서버 필요한 작업 수행

      이전 접속 여부 / 클라이언트 정보 등 확인 가능

  • Cookie 클래스의 메서드
    • set/getComment(): 쿠키에 대한 설명을 설정/출력
    • set/getDomain(): 쿠키의 유효한 도메인 정보 설정/출력
    • set/getMaxAge(): 쿠키의 유효기간을 설정/출력
    • set/getValue(): 쿠키의 값을 설정/출력
  • 쿠키와 세션의 차이
구분 쿠키 세션
사용 클래스 Cookie HttpSession
저장 형식 텍스트 Object
저장 위치 클라이언트 서버(세션 아이디만 클라이언트에)
종료 시점 쿠키 저장할 때 설정(설정 안하면, 웹브라우저 끌 때) 정확한 시점 알 수 없음
리소스 클라이언트 리소스 사용 서버 리소스 사용
보안 클라이언트에 저장되어 상대적으로 취약 서버에 저장되어 안정적
  • 쿠키보다는 세션!
    • 첫째, 세션이 보안에 더 강함(서버에 저장)
    • 둘째, 쿠키 지원하지 않거나 쿠키를 막은 경우 사용 불가 / 세션은 무관



쿠키(cookie) - 2. 쿠키 생성

  • 쿠키 사용을 위해 생성부터 (Cookie 클래스의 Cookie 메서드)
    • ex. Cookie Cookie(String name, String value)
  • 생성 후에는 response 내장객체의 addCookie() 메서드로 쿠키 설정!
    • response.addCookie(cookie);



쿠키(cookie) - 3. 쿠키 정보

  • 쿠키 정보 조회 = 쿠키 객체를 먼저 얻어온 후, 쿠키 이름/값 가져옴

    1. 쿠키 객체 얻기
      • request 내장 객체의 getCookies() 메서드 사용
      • 쿠키 객체 여러 개일 때는 배열 형태로 가져옴
      • ex. Cookie[] cookies = request.getCookies();
    1. 쿠키 객체의 정보 얻기
      • 현재 설정된 쿠키 개수: ex. cookies.length
      • 설정된 쿠키 속성 이름: ex. cookies[i].getName()
      • 설정된 쿠키 속성 값: ex. cookies[i].getValue()

cookieGet



쿠키(cookie) - 4. 쿠키 삭제

  • 쿠키 유효 기간 설정 메서드 사용
    • void setMaxAge(int age)
    • age = 0 으로 설정하여 쿠키 삭제

      Cookie 클래스에 삭제 기능은 따로 없음..

cookieDelete






과제

  • 13, 14단원 연습문제 / ~7/15(금)까지

  • 이형록_220525_JSP과제

  • 내용

    • 1~3번
      • 교재 읽고 답 찾기
      • 메모장에 타이핑
    • 4~6번
      • 교재 읽고 실습
      • 기본 소스 임포트 해서 확인
    • 7번
      • Book Market Mall 만들기 - 정답 소스 없음 (구글에 검색!!)
      • 수업용 예제, ‘Web Market Mall’ 참고!






nice!!!!!!

Updated: