세션이란?
정의
- 클라이언트 별로 서버에 저장되는 정보입니다.
이용방법
세션 생성 및 얻기
1
2
3
|
HttpSession session = request.getSession();
HttpSession session = request.getSession(true);
|
s |
- request의 getSession()메소드는 서버에 생성된 세션이 있다면 세션을 반환하고 없다면 새롭게 세션을 생성하여 반환합니다.
- 새롭게 생성된 세션인지는 HttpSession이 가지고 있는 isNew()메소드를 통해 알 수 있습니다.
1
|
HttpSession session = request.getSession(false);
|
- request의 getSession()메소드에 파라미터로 false를 전달하면, 이미 생성된 세션이 있다면 반환하고 없으면 null을 반환합니다.
세션에 값 저장
1
|
setAttribute(String name, Object value)
|
- name과 value의 쌍으로 객체 Object를 저장하는 메소드 입니다.
- 세션이 유지되는 동안 저장할 자료를 저장합니다.
1
|
session.setAttribute(이름, 값)
|
세션에 값 조회
1
|
String value = (String) session.getAttribute("id");
|
- 세션에 저장된 자료는 다시 getAttribute(String name)메소드를 이용해 조회합니다.
- 반환 값은 Object 유형이므로 저장된 객체로 자료형 변환이 필요합니다.
- 메소드 setAttribute()에 이용한 name인 "id"를 알고 있다면 바로 위와 같이 조회합니다.
세션에 값 삭제
- removeAttributer(String name)메소드
- name값에 해당하는 세션 정보를 삭제합니다.
- invalidate() 메소드
- 모든 세션 정보를 삭제합니다.
javax.servlet.http.HttpSession
반환형 | 메소드 이름 | 메소드 기능 |
Object | getAttribute(String name) | name이란 이름에 해당하는 속성값을 Object타입으로 반환, 해당되는 이름이 없을 경우에는 null을 반환 |
Enumeration | getAttributeNames() | 속성의 이름들을 Enumeration 타입으로 변환 |
void | invalidate() | 현재 생성된 세션을 무효화 시킴 |
void | removeAttribute(String name) | name으로 지정한 속성의 값을 제거 |
void | setAttribute(String name, Object value) | name으로 지정한 이름에 value 값을 할당 |
void | setMaxInactiveInterval(int interval) | 세션의 최대 유지시간을 초 단위로 설정 |
boolean | isNew() | 세션이 새로이 만들어졌으면 true, 이미 만들어진 세션이면 false를 반환 |
세션은 클라이언트가 서버에 접속하는 순간 생성합니다.
- 특별히 지정하지 않으면 세션의 유지 시간은 기본 값으로 30분 설정합니다.
- 세션의 유지 시간이란 서버에 접속한 후 서버에 요청을 하지 않는 최대 시간 입니다.
- 30분 이상 서버에 전혀 반응을 보이지 않으면 세션이 자동으로 끊어집니다.
- 이 세션 유지 시간은 web.xml파일에서 설정 가능합니다.
참고자료: https://www.edwith.org/boostcourse-web/lecture/16801/
[LECTURE] 4) Session이란? : edwith
들어가기 전에 이번 시간엔 자바 웹 어플리케이션에서 세션을 사용하는 방법에 대해 알아보도록 하겠습니다. 학습 목표 세션을 이용하는 방법에 대해 이해합니다. javax.ser... - 부스트코스
www.edwith.org