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