본문 바로가기
코딩 해보자

220902 session 사용법

by friendlyboy 2022. 9. 2.

[session 내용 확인 실습]
프로젝트 Dwp_Ch07_Session
html  ins.html (데이터 입력페이지)
jsp_01 => sessionProc.jsp
(데이터 수신및 세션 적용 페이지)
jsp_02 => sessionConfirm.jsp
(세션 정보확인 및 세션 해제 선택 페이지)
jsp_03 => sessionInvalid.jsp
(세션 해제 실행 페이지)

1. 세션을 설정하기 위한 기본 환경
  1) 세션을 설정하기 위한 데이터가 존재해야함.
    => 변수에 값이 저장되어 있어야함.
  2) page 디렉티브 (=지시자)에서
      session="true" 속성 설정 되어 있어야 함
      (단, 기본 값이므로 생략 가능)
  3) 세션 설정 
      => session.setAttribute("세선 키", "적용할 변수");
        -------------
세션을 적용할 
데이터를 의미(=세션 값)

         보기. String data= "123ABC";
    session.setAttribute("sessionKey"  ,  data);
     -------------     -------------
      임의설정가능    적용할 변수
=> 입력값 "123ABC"이라는 데이터는
      sessionKey라는 세션 키로 현재 내용은 없지만
    세션 ID를 자동 생성하여 세션을 설정한다.

그러므로 세션이 설정되면 다음 3개가 필요하다.
 세션 키    ,     세션 값(적용할 변수)    ,     세션 ID(=난수)
---------         ---------------------       ---------------
"sessionKey" "123ABC"      알수 없음
     세션이 생성될 때 부여받은 
     세션 아이디는 세션이 소멸될        때까지 
      난수가 불변하고 유지

             부수적으로 세션 유지 시간도 자동 설정된다.
 기본 값 : 30 분 =>  표기법 60*30
           ------
60초 30개 (= 분)
초 단위로 입력해야 함.

참고. 세션 유지 시간 사용자 지정 =>
       session.setMaxInactiveInterval( 60 * 2 );
         2분간 세션 유지
         단, 세션 유지시간은
         브라우저를 새로고침하면
         시간이 재설정됨(2분으로 다시 설정)

2. 세션 난수값(세션 ID) 확인하기 
    session.getID( ); 세션의 ID인 난수 값을 반환한다.

3. 세션 소멸 (=세션 ID(난수값) 소멸)
   1) 자동 소멸 : 세션 유지 시간 동안 브라우저 페이지 이동 or 새로고침 하지 않으면
자동 소멸
   2) 수동 소멸 : 세션 즉시 소멸시키는 방법으로
session.invalidate( ); 실행한다.

* 세션 내장 객체가 세션 난수값(ID) 생성함 / 세션키, 세션값은 사용자가 설정

 

서버에서 처리하면 되는 sessionProc.jsp는 페이지를 노출 시킬 필요가 없으므로

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" autoFlush="true"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>세션 생성(=설정) 페이지</title>
<link rel="shortcut icon" href="#">
<link rel="stylesheet" href="/Dwp_Ch07_Session/style/style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="/Dwp_Ch07_Session/script.js"></script>
</head>
<body>
    <div id="wrap">

		<%
		String sampleData=request.getParameter("sampleData");
		/* 변수 이름은 받는 data name과 똑같이 설정하는 것이 좋다. */
		
		session.setAttribute("sdKey", sampleData);  
									//세션 키 , 세션 값(전달 받은 데이터)
									//세션 아이디 자동 생성(숫자 + 영문코드로 구성된 난수 코드)
									//크롬,엣지 에 따라서도 난수값이 달라지므로 구분 가능
									//sd = sampleData
									//추가적으로 자동생성 => 세션 유지 시간 (기본 30 분, 60*30)
									//세션 유지시간 사용자 설정 => session.setMaxInactiveInterval(20);
									
		session.setMaxInactiveInterval(20);
		%>
    </div>
    <!-- div#wrap  -->
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" autoFlush="true"%>


		<%
		String sampleData=request.getParameter("sampleData");
		/* 변수 이름은 받는 data name과 똑같이 설정하는 것이 좋다. */
		
		session.setAttribute("sdKey", sampleData);  
									//세션 키 , 세션 값(전달 받은 데이터)
									//세션 아이디 자동 생성(숫자 + 영문코드로 구성된 난수 코드)
									//크롬,엣지 에 따라서도 난수값이 달라지므로 구분 가능
									//sd = sampleData
									//추가적으로 자동생성 => 세션 유지 시간 (기본 30 분, 60*30)
									//세션 유지시간 사용자 설정 => session.setMaxInactiveInterval(20);
									
		session.setMaxInactiveInterval(20);
		%>

간소화 시킨다

댓글