2019. 11. 2. 15:03
Http 프로토콜 요청
http 프로토콜은 request/response (요청 응답) 구조로 서버가 요청에 대한 응답을 끝낸다면 연결이 끊어지게 된다.
따라서, 정보가 유지되어야 할 필요가 있을 때 가상 연결(Virtual Connection)이라는 개념의 세션이 생겼고
JSP 에서는 이러한 세션을 session 내장 객체를 이용하여 구현해 준다.
예
웹사이트에서 접속을 하고 보안상의 이유로 페이지의 요청없이 일정시간이 지나면 자동으로 로그인 세션이 만료되었다는 메세지를 출력하고 강제로 로그아웃이 되버린다.
넥슨 게임 어플에서 현재 로그인된 연결들을 보여주면서 강제로 끊어줄 수 있다.
리턴 타입 | 메소드명 | 설명 |
String | getId() | 해당 세션의 세션 id를 문자열로 리턴해줌. session 객체 생성 시에 웹 컨테이너에 의해 자동으로 할당(만들어짐) |
long | getCreationTime() | 1970년 1월 1일 00시 00분 00초(epoch)부터 해당 세션이 생성된 순간까지의 경과 시간을 밀리초로 계산하여 long형으로 리턴한다. |
long | getlastAccessedTime() | epoch로 부터 해당 세션에 마지막으로 접근된 시간까지의 경과 시간을 밀리초로 계산하여 long형으로 리턴한다 |
int | getMaxInactiveInterval() | 클라이언트의 요청이 없을 시 서버가 해당 세션을 유지하도록 지정된 시간을 초 단위의 정수로 리턴한다. |
없음 | invalidate() | 세션의 속성 값으로 저장된 모든 객체를 반납하여 해당 세션을 종료 시킨다 |
boolean | isNew() | 새로운 세션일 경우 true를 리턴하고 기존에 세션이 유지되고 있으면 false를 리턴 |
없음 | setMaxInactiveInterval(int seconds) | 클라이언트의 요청이 없더라도 세션을 유지할 시간을 초단위의 정수값으로 설정한다. 음수로 설정하면 세션은 계속 유지된다. |
없음 | forward(String url) | 현재 페이지의 요청과 응답에 관한 제어권을 URL로 지정된 주소로 영구적으로 넘긴다. forward된 페이지의 요청 처리가 종료되면 응답도 종료된다 |
없음 | include(String url) | 현재 페이지의 요청과 응답에 관한 제어권을 URL로 지정된 주소로 임시로 넘긴다. include된 페이지의 처리가 끝나면 제어권은 다시 원래의 페이지로 돌아온다. |
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
session.setMaxInactiveInterval(10);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>session test</title>
</head>
<body>
<h2>세션 테스트</h2>
isNew() : <%=session.isNew() %><br>
생성시간 : <%=session.getCreationTime() %> <br>
최종 접속 시간 : <%=session.getLastAccessedTime() %><br>
세션 ID : <%=session.getId() %><br>
</body>
</html>
session.setMaxInactiveInterval(10); 10초 !
10초가 지나기 전까진 세션 ID 이 유지되어 isNew() : false 이다가
10초가 지난후에 새로 고침해버리면 true로 바뀐다
'JSP' 카테고리의 다른 글
[JSP] out - 객체 (0) | 2019.11.02 |
---|---|
[JSP] application - 객체 (0) | 2019.11.02 |
[JSP] pageContext 객체 (0) | 2019.11.02 |
[JSP] Session 객체 - 메소드 (0) | 2019.11.02 |
[JSP] 내장객체 - http헤더 (0) | 2019.11.02 |