목원대학교 융합컴퓨터미디어학부 교수
박 기 홍
학습 목표
2
2020-1학기
• 세션의 개념을 이해합니다.
세션을 생성하는 방법을 익힙니다.
세션 정보를 가져오는 방법을 익힙니다.
세션을 삭제하는 방법을 익힙니다.
세션 유효 시간을 설정하는 방법을 익힙니다.
• 웹 쇼핑몰의 장바구니 페이지를 만듭니다.
본 온라인 강의 교안 작성 시
한빛아카데미에서 제공하는 강의 교안을 참고 하였습니다.
인터넷프로그래밍
세션의 개요 (1/3)
3
2020-1학기
인터넷프로그래밍
세션(session)
• 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
예를 들면, 웹 쇼핑몰에서 장바구니나 주문 처리와 같은 회원 전용 페이지의 경우
로그인 인증을 통해 사용 권한을 부여.
그래서 다른 웹 페이지에 갔다가 되돌아와도 로그인 상태가 유지되므로 회원 전용 페이지를
계속 사용할 수 있음.
이렇게 사용자 인증을 통해 특정 페이지를 사용할 수 있도록 권한 상태를 유지하는 것.
• 웹 서버에서만 접근이 가능하므로 보안 유지에 유리하며 데이터를 저장하는 데
한계가 없음
세션의 개요 (2/3)
4
2020-1학기
인터넷프로그래밍
세션(session)
• 오직 웹 서버에 존재하는 객체로 웹 브라우저마다 하나씩 존재하므로 웹 서버의
서비스를 제공받는 사용자를 구분하는 단위가 됨.
• 웹 브라우저를 닫기 전까지 웹 페이지를 이동하더라도 사용자의 정보가 웹 서버에
보관되어 있어 사용자 정보를 잃지 않음.
세션의 개요 (3/3) – session 내장객체 메소드
5
2020-1학기
인터넷프로그래밍
세션 생성 (1/2)
6
2020-1학기
인터넷프로그래밍
세션 생성
• session 내장 객체의 setAttribute( ) 메소드를 사용
• setAttribute( ) 메소드를 이용하여 세션의 속성을 설정하면 계속 세션 상태를
유지할 수 있음. 만약 동일한 세션의 속성 이름으로 세션을 생성하면 마지막에
설정한 것이 세션 속성 값이 됨.
• 첫 번째 매개변수 name은 세션으로 사용할 세션 속성 이름을 나타내며,
세션에 저장된 특정 값을 찾아오기 위한 키로 사용.
• 두 번째 매개변수 value는 세션의 속성 값
• 세션 속성 값은 Object 객체 타입만 가능하기 때문에 int, double, char 등의 기본
타입은 사용할 수 없음
세션 생성 (2/2)
7
2020-1학기
인터넷프로그래밍
세션 정보 (1/4)
8
2020-1학기
인터넷프로그래밍
단일 세션 정보 얻기
• 세션에 저장된 하나의 세션 속성 이름에 대한 속성 값을 얻어오려면
getAttribute( ) 메소드를 사용
• getAttribute( ) 메소드는 반환 유형이 Object 형이므로 반드시 형 변환을 하여
사용해야 함
• 첫 번째 매개변수 name은 세션에 저장된 세션 속성 이름
해당 속성 이름이 없는 경우 nul 을 반환
세션 정보 (2/4)
9
2020-1학기
인터넷프로그래밍
세션 정보 (3/4)
10
2020-1학기
인터넷프로그래밍
다중 세션 정보 얻기
• session 속성 이름을 Eunumeration 객체 타입으로 반환하여 세션 정보를 얻음.
• session 내장 객체의 getAttributeNames( ) 메소드를 사용
세션 정보 (4/4)
11
2020-1학기
인터넷프로그래밍
세션 삭제 (1/5)
12
2020-1학기
인터넷프로그래밍
단일 세션 삭제하기
• session 에 저장된 하나의 세션 속성 이름을 삭제하려면
removeAttribute( ) 메소드를 사용
세션 삭제 (2/5)
13
2020-1학기
인터넷프로그래밍
세션 삭제 (3/5)
14
2020-1학기
인터넷프로그래밍
세션 삭제 (4/5)
15
2020-1학기
인터넷프로그래밍
다중 세션 삭제하기
• session에 저장된 모든 세션 속성 이름을 삭제하려면 invalidate( ) 메소드를 사용
세션 삭제 (5/5)
16
2020-1학기
인터넷프로그래밍
세션 유효 시간 설정 (1/3)
17
2020-1학기
인터넷프로그래밍
세션 유효 시간
• 세션을 유지하기 위한 세션의 일정 시간
• 웹 브라우저에 마지막 접근한 시간부터 일정 시간 이내에 다시 웹 브라우저에
접근하지 않으면 자동으로 세션이 종료
• 세션 유효 시간을 설정하기 위해 session 내장 객체의
setMaxInactiveInterval( ) 메소드를 사용
세션 유효 시간 설정 (2/3)
18
2020-1학기
인터넷프로그래밍
세션 유효 시간 설정 (3/3)
19
2020-1학기
인터넷프로그래밍