쌍용 강북 교육센터 국비학원 Day 67일차
session (세션)
session이란 WAS 컴퓨터의 메모리(RAM) 의 일부분을 사용하는 것으로 접속한 클라이언트 컴퓨터에서 보내온 정보를 저장하는 용도로 쓰인다. (즉, 웹 컨테이너에 클라이언트의 상태 정보를 보관할 때 사용한다)
클라이언트 컴퓨터가 WAS 컴퓨터에 웹으로 접속을 하기만 하면 무조건 자동적으로 WAS 컴퓨터의 메모리(RAM)의 일부분에 session 이 생성되어진다. session 은 클라이언트 컴퓨터 웹브라우저당 1개씩 생성되어진다.
예를 들면 클라이언트 컴퓨터가 크롬 웹브라우저로 WAS 컴퓨터에 웹으로 연결하면 session이 하나 생성되어지고, 또 이어서 동일한 클라이언트 컴퓨터가 엣지 웹브라우저로 WAS 컴퓨터에 웹으로 연결하면 또 하나의 새로운 session이 생성되어진다.
※ 쿠키(웹 브라우저에 정보 보관) - 세션(서버에 정보 보관)
세션이라는 저장 영역에 저장시켜두면 .properties 파일에 기술된 모든 클래스 및 모든 JSP 페이지 (파일)에서 세션에 저장되어진 정보를 사용할 수 있다.
- 서버에서 사용자의 정보 (상태)를 저장한다.
- 쿠키와 같이 서버와의 관계를 유지하기 위한 수단이다.
- 클라이언트의 요청이 발생하면 자동 생성된다.
- 쿠키와 달리 클라이언트의 특정 위치에 저장되는 것이 아니라, 서버 상에 객체로 존재한다.
- 쿠키와 달리 서버에서만 접근이 가능하여 보안이 좋다.
- Session의 영역상 브라우저의 X 버튼을 누를 때까지 유지된다.
- 로그인 정보나 사용자 환경설정, DB커넥션 등 여러 클래스 또는 여러 jsp 페이지에서 정보를 유지하는 것들에 사용된다.
메소드 | 설명 |
setAttribute(String attrName, Object attrValue) | 세션에 데이터를 저장한다. |
getAttribute(String attrName) | 세션에서 파라미터로 지정된 이름의 속성 데이터 값을 얻는다. |
getAttributeNames() | 세션에 저장되어 있는 모든 데이터의 이름 (유니크한 키 값)을 얻는다. |
getId() | 자동 생성된 세션의 유니크한 아이디를 얻는다. (각 브라우저에 해당하는 값) |
isNew() | 세션이 최초 생성되었는지, 이전에 생성된 세션인지를 구분한다. |
setMaxInactiveInterval(int second) | 세션의 유효시간을 설정한다. |
getMaxInactiveInterval() | 세션의 유효시간을 얻는다. 가장 최근 요청시점을 기준으로 카운트 된다. |
removeAttribute(String attrName) | 세션에서 특정 데이터(파라미터 값) 제거. (세션을 제거하는 것이 아니라 값을 삭제한다.) |
invalidate() | 세션의 모든 데이터를 삭제한다. |
※ invalidate
- 바로 소멸시킨다는 의미가 아니다.
- 아이디 값을 제외한 나머지 정보를 접근할 수 없다.
- invalidate() 후 세션의 아이디 값은 받아 올 수 있지만 나머지 정보나 속성 등은 접근할 수가 없다.
(아이디 값을 받아 올 수 있다는 의미는 현재 페이지에서 세션이 사라진 것은 아니다.
- session.getSession() 메서드를 사용해서 다음 페이지에 얻어 와야 하는 세션을 미리 얻어올 수 있다.
메서드 | 설명 |
getCreationTime() | 세션이 생성된 시간을 구한다. 시간은 1970년 1월 1일 이후 흘러간 시간을 의미하며, 단위는 1/1000초이다. |
getLastAccessedTime() | 웹 브라우저가 가장 마지막에 세션에 접근한 시간을 구한다. 시간은 1970년 1월 1일 이후 흘러간 시간을 의미하며, 단위는 1/1000초이다. |
'Web > JSP' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 70일차 JSP (radio index 이벤트, 팝업창 함수호출, 결제창 로직구현) (0) | 2023.04.12 |
---|---|
쌍용강북교육센터 국비 학원 Day 69일차 JSP (Modal 값 초기화, reload, 이메일 인증코드 구현) (0) | 2023.04.11 |
쌍용강북교육센터 국비 학원 Day 66일차 JSP (암호화/복호화, Ajax, Json) (0) | 2023.04.06 |
쌍용강북교육센터 국비 학원 Day 64일차 JSP (DBCP, Connection Pool) (0) | 2023.04.04 |
쌍용강북교육센터 국비 학원 Day 63일차 JSP (MVC 패턴) (0) | 2023.04.03 |