
Session이란?
사용자가 Web browser를 통해 접속한 시점으로부터 종료하여 연결을 끝내는 시점까지 같은 사용자로부터 오는 일련의 요청을 하나의 상태로 보고, 그 상태를 일정하게 유지하는 기술이다. Client 별로 Server에 저장되는 상태 정보. 사용자의 CP에 저장되는 Cookie와 비교된다.
Session의 특징
- 각 Client에게 고유한 ID를 부여한다.
- Session ID로 Client를 구분하여 요구에 맞는 Service 제공이 가능하다.
- 사용했던 정보를 Server에 저장하기 때문에 Cookie보다 보안이 우수하다.
- Server 부하가 발생할 수 있다.
- Http Protocol은 비접속형이기 때문에 접속마다 network를 새로 연결하나, session이 연결을 유지하게 한다.
- WAS의 memory에 Object 형태로 저장된다.
- Memory가 허용하는 용량까지 무제한으로 저장이 가능하다.
Session의 동작 순서
- Client가 Page를 요청한다.
- 접근한 Client의 Cookie를 확인하여 해당 session-id를 확인한다.
- 존재하지 않으면 Session-id를 생성하여 Client에게 반환한다.
- Server에서 Client로 반환한 session-id를 cookie로 server에 저장한다.
- Client 재 접속시, 해당 cookie를 이용하여 session-id 값을 server에 전달한다(3번 실행).
Session의 기능
Session의 주요 method
Method | Description |
String getId() | Session의 ID 반환 |
long getLastAccessedTime() | Session 내에서 최근 요청 받은 시간 반환 |
boolean isNew() | 새로 생성된 session인지를 반환. request.getSession() 호출 후 사용. |
void invalidate() | session 객체를 저장된 객체와 함께 제거. |
void setMaxinactiveInterval(int interval) | 지정된 시간(초) 후에 session 종료(예약 종료.) |
int getMaxInactiveInterval() | 예약된 session 종료 시간 반환. |
속성 관련 method
// 생성
HttpSession session = request.getSession();
HttpSession session = request.getSession(false);
// 값 저장
session.setAttribute(String name, Object value);
// 값 얻기
Object obj = session.getAttribute(String name);
// 값 제거
session.removeAttribute(String name);// 특정 이름 속성 제거
session.setMaxInactiveInterval(30 * 60) // 예약 종료(30분 후)
// 해당 page에서 session 미사용
<%@ page session = "false" %>
Javascript에서 사용하기
[JavaScript] Javascript에서 session 사용
Session에 대해, Java에서 사용하기 Javascript의 session, sessionStorage sessionStorage 지원 method Method Description setItem(key, value) Session에 value(data)를 key 이름으로 저장 getItem(key) Sessio..
seheec.tistory.com
'Language > Java' 카테고리의 다른 글
[Java] 제네릭(Generics)이란? (0) | 2022.06.13 |
---|---|
[Java] 람다식 문법(Lambda Expressions)이란? (0) | 2022.02.21 |
[JDBC] JDBC란? (0) | 2022.02.05 |