반응형
세션(Session)에 동작 흐름에 대한 자세한 설명은 아래에 포스팅했으므로 보고 오는 것이 이해하는데 더 도움될 것이다.
https://yeo-computerclass.tistory.com/110?category=1269285
세션(Session)이란?
- 정보가 서버의 메모리에 저장된다.
- 브라우저의 Session 연동은 Session Cookie를 이용한다.
- 브라우저 당 한 개의 Session이 주어지며 정보는 브라우저를 종료할 때 까지 유지된다.
- Cookie보다 보안에 유리하다.
Cookie를 이용하여 아이디 저장이나 팝업창 보지않기 정도만 했다면, 보안에 더 유리한 Session 같은 경우 로그인 상태 유지 기능 등에 쓰인다.
세션(Session)의 흐름 과정
https://yeo-computerclass.tistory.com/m/110?category=1269285
가벼운 설명
- 클라이언트가 서버에 최초 접속한다.
- 서버는 Session 객체를 생성 후 Session id를 브라우저에 보낸다.
- 브라우저는 Session id를 브라우저 내 메모리에 JSESSIONID란 이름으로 저장
- 클라이언트가 다시 접속할 시 JSESSIONID를 서버에 전송
- 서버에서 해당 Session id가 있는지 확인 후 존재하면 해당 Session 객체 사용
Session API
세션 생성
Servlet에서 Session을 사용하기 위해서는 HttpSession 클래스 객체를 생성해서 사용해야 한다.
HttpSession session = request.getSession();
- getSession(): 기존의 세션 객체가 존재하면 반환, 없으면 새로 생성
- getSession(true): 기존의 세션 객체가 존재하면 반환, 없으면 새로 생성
- getSession(false): 기존의 세션 객체가 존재하면 반환, 없으면 null 반환
HttpSession 메소드
반환 타입 | 메소드 | 설명 |
Object | getAttribute(String name) | 속성 이름이 name인 속성 값을 Object 타입으로 반환. 해당하는 속성 이름이 없을 경우 null 반환 |
Enumeration | getAttributeNames() | 세션 속성 이름들을 Enumeration 객체 타입으로 반환. |
long | getCreationTime() | 세션 생성된 시간을 mile second로 반환 |
long | getLastAccessedTime() | 세션 객체에 가장 최근에 접근한 시간을 반환 |
String | getId() | 세션에 할당된 고유 식별자를 반환 |
int | getMaxInactiveInterval() | 현재 생성된 세션을 유지하기 위해 설정된 세션 유지 시간을 int 타입으로 반환 |
void | setAttribute(String name, Object value) |
세션 속성 이름이 name인 속성에 속성 값으로 value를 할당 |
void | setMaxInactiveInterval (int interval) |
세션을 유지하기 위한 세션 유지 시간을 초 단위로 설정 |
void | removeAttribute(String name) | 세션 속성 이름이 name인 속성을 제거 |
boolean | isNew() | 최초로 생성된 세션인지 기존에 생성되어 있었던 세션인지 판별 |
void | invalidate() | 세션을 삭제 |
- Session 유효 시간을 따로 설정하지 않으면 톰캣 사용시 톰캣에서 설정한 기본 유효 시간 30분 설정된다.
반응형
'JSP & Servlet > 개념' 카테고리의 다른 글
[JSP & Servlet] 세션(Session) - 로그인 정보 유지 (0) | 2022.04.05 |
---|---|
[Servlet] 쿠키(Cookie) (0) | 2022.04.05 |
[JSP & Servlet] 자바빈(JavaBean) (0) | 2022.03.29 |
[JSP & Servlet] 템플릿 페이지 (0) | 2022.03.29 |
[JSP] JSP 액션 태그 (0) | 2022.03.29 |