Session
: 웹 서버가 지속적인 클라이언트 인식을 위해 사용자 별로 필요한 정보를 웹 서버에 임시로 저장해 두는 방법이다.
예) 로그인 인증 후 일정 시간 내에서는 재인증 불필요, 장바구니의 추가 상품 누적 등
HTTP 프로토콜이 비연결형 프로토콜이기 때문에(stateless) 한 페이지가 출력된 다음에는 클라이언트와 서버의 연결이 끊어진다. (웹 사이트는 유저와 항상 연결되어 있지 않다!)
따라서 한 번 로그인 한 사용자가 로그아웃 할 때 까지 보관해야 할 정보가 있다면 처리가 되기 힘들다.
이러한 HTTP 프로토콜의 문제점을 해결하기 위해 나온 것이 쿠키 , 세션이다.
- 쿠키란? 사용자와 관련된 정보를 pc 에 보관하는 방식이다. 유저의 정보를 기억할 필요가 있기 때문에 생겨남 (클라이언트에 저장)
- 세션이란? 서버에 보관하는 방식이다. 세션이 쿠키보다 보안에 유리하고 제약사항이 적은 편이기 때문에 최근에는 대부분 세션을 사용한다.
세션이 사용되는 경우
1) 사용자 로그인 후 세션을 설정하고 일정 시간이 지난 경우 다시 사용자 인증을 요구할 때
2) 쇼핑몰에서 장바구니 기능을 구현할 때
3) 사용자의 페이지 이동 동선 등 웹 페이지 트래킹 분석 기능 등을 구현할 때
등등 ..
JSP 에서 세션은 javax.servlet.http.HttpSession 인터페이스의 참조 변수로 session 내장객체를 통해 접근할 수 있다.
세션의 특징은 연결된 사용자마다 생성되는 것으로 서버에 연결된 각각의 사용자마다 자신만의 세션 영역이 있다.
session 내장객체 메서드
메서드 | 설명 |
getId() | 각 접속에 대한 세션 고유의 ID 를 문자열 형태로 반환 |
getCreatingTime() | 세션 생성 시간을 January 1. 1970 GMT 부터 long 형 밀리세컨드 값으로 반환 |
getLastAccessedTime() | 현재 세션으로 마지막막 작업한 시간을 long 형 밀리세컨드 값으로 반환한다. |
getMaxInactiveInterval() | 세션의 유지시간을 초로 반환, 세션의 유효시간을 알 수 있음 |
setMaxInactiveInterval(t) | 세션의 유효 시간을 t에 설정된 초 값으로 설정 |
invalidate() | 현재 세션을 종료, 세션과 관련된 값들은 모두 지워짐 |
getAttribute(attr) | 문자열 attr 로 설정된 세션 값을 java.lang.Object 형태로 반환한다. |
setAttribute(name,attr) | 문자열 name 으로 java.lang.Object.attr 을 설정한다. |
'프로그래밍언어 > WEB' 카테고리의 다른 글
빈즈 (0) | 2020.06.04 |
---|---|
JSP-Servlet (0) | 2020.05.10 |
JSP : 내장 객체 - out (0) | 2020.04.17 |
JSP - 내장 객체 - request , response (0) | 2020.04.10 |
JSP 기본 문법 - 주석, 스크립트 태그 (0) | 2020.04.03 |