-
JSP(Session, 세션)JSP 2020. 6. 11. 13:51
세션
- 세션은 웹 브라우저가 아니라 서버에 값을 저장된다는 점이 쿠키와 차이점이다.
- 쿠키가 웹 브라우저에서 정보를 보관할 때 사용된다면, 세션은 웹 컨테이너에서
정보를 보관할 때 사용된다.
- 세션은 오직 서버에서만 생성된다.
- 웹 컨테이너는 기본적으로 하나의 웹 브라우저에 하나의 세션을 생성한다.
- 세션이 생성되면 session 기본 객체를 통해서 세션을 사용할 수 있다.
세션의 생성과 활용
1. 클라이언트(브라우저)의 서버 대상 최초 요청시 쿠키 베이스의 세션 제너레이트 키(서버에 세션을 신규 생성해달라는 시그널)를 서버로 전송
-> 신규 서버? 세션? 를 생성해주세요!! 요청
2. 서버에 전송된 세션 제너레이트 키를 활용해서 서버 내 신규 세션이 생성되고,새로 생성된 세션에는 세션ID(랜덤하지만 유니크)가 할당
-> 세션이 생성됨
3. 신규 생성된 세션에 할당된 세션ID는 해당 최초 요청의 클라이언트 대상 최초 응답 전송시응답 패킷의 응답헤더에 포함되어 전송
4. 클라이언트가 취득한 서버단에 존재하는 세션의 세션ID는 해당 클라이언트 서버 대상 요청시마다쿠키 베이스로 서버 대상 전송됨
5. 서버는 클라이언트로부터 전송되는 기타 요청정보에 포함된 세션ID를 활용해서해당 클라이언트에 할당된 세션을 특정 및 활용
6. 활용 용도 : 공유되어야 하는 서로 상이한 요청과 응답 사이클간의 데이터 공유세션 취득 : request.getSession();
request.getSession(true | false); -> 오버로딩된 메소드가 또 있음
* parameter가 true
- 기존 생성된 세션이 존재하면 해당 세션을 반환, 기존 생성된 세션이 존재하지 않으면
에러없이 신규 세션을 생성
parameter가 false
- 기존 생성된 세션이 존재하면 해당 세션을 반환
기존 생성된 세션이 존재하지 않으면 에러를 반환
세션 유효시간(만료시간) : Tomcat(웹 애플리케이션 서버, WAS, 웹 컨테이너, 서블릿 컨테이너) default 30분
* default 세션 유효 시간은 WAS별 상이.
* 국지적 세션 유효시간 설정 - 특정 클라이언트에 할당된 특정 세션을 대상으로하는 만료시간 설정
Session.setMaxInactiveInterval(초 단위 설정)
전역적 유효시간 설정 - 해당 웹 애플리케이션 내 활용 전체 클라이언트에 할당된 전체 세션의 만료시간 설
세션 삭제 : 1. 클라이언트의 최종 서버 대상 요청 이후 세션 만료시간 경과 시.
2. session.invalidate(); -> java코드로 세션 삭제
Session 동작구조
request할때 Session이 만들어진다. (SessionID포함)
response할떄 SessionID로 클라이언트를 특정할 수 있다.
Session 메소드
메서드 리턴 타입 설명 getId() String 세션의 고유 ID를 구한다.(세션 ID라고 한다.) getCreationTime long 세션이 생성된 시간을 구한다. 시간은 1970년 1월 1일 이후 흘러간 시간을 의미하며, 단위는 1/1000초이다. getLastAccessedTime() long 웹 브라우저가 가장 마지막에 세션에 접근한 시간을 구한다. 최근 접근 시간을 기록함으로서 세션의 타임아웃을 관리하기 위함이다. 시간은 1970년 1월 1일 이후 흘러간 시간을 의미하며, 단위는 1/1000초이다. getAttribute("키값") String 키값에 해당하는 value값 리턴 setAttribute("키값", value) void Session에 키, 벨류 형태로 값 삽입 세션 아이디 : <%=session.getId()%><br/> <!-- getCreationTime() -> 세션이 생성된 시간을 long타입으로 반환 --> 세션 최초 생성 일시 : <%=dateFormat.format(new Date(session.getCreationTime())) %><br/> 클라이언트 최종 요청 일시 : <%=dateFormat.format(new Date(session.getLastAccessedTime()))%>
'JSP' 카테고리의 다른 글
JSP(expressionLanguage) (0) 2020.06.16 ajax(This XML file does not appear to have any style information associated with it. The document tree is shown below.) 에러 (0) 2020.06.15 JSP(Cookie) (0) 2020.06.11 JSP(Exception) (0) 2020.06.10 JSP(buffer) (0) 2020.06.10