프로그래머/JAVA

[JSP] 세션

얼짱가면 2013. 3. 28. 09:22

세션이란?

특정 클라이언트와의 대화 상태를 유지하는 방법(Data Persistence)

-    클라이언트가 접속을 시도하면 서버에 클라이언트의 정보를 저장

-    클라이언트에 response를 보낼 때 JSESSIONID를 클라이언트에 저장

-    클라이언트가 접속을 시도하면 JSESSIONID를 읽어와서 서버의 JSESSIONID와 비교

è  처음 접속한 사용자인지, 기존 사용자인지 확인

 

명령 형식 <Servlet>

HttpSession session = request.getSession();

명령 형식 <JSP>

기본적으로 페이지 지시어에 선언되어 있어서 사용만 함

<%@ page session="true" %>

위 명령으로 JSESSIONID가 생성되며, JSESSIONID를 클라이언트에 저장하기 위해 Cookie object를 생성,

이 쿠키 object 안에 JSESSIONID를 넣고 Response에 생성된 쿠키를 추가시켜서 응답.

JSESSIONID가 존재하지 않으면 새로운 세션을 만들고 JSESSIONID를 발급하여 쿠키에 저장

 

명령 형식 <새로운 세션인지 확인하는 명령>

HttpSession session = request.getSession(); //true면 항상 새로 만듬.

if(session.isNew()) {//새로운 세션입니다.}

명령 형식 <사용중인 세션인지 확인하는 명령>

HttpSession session = request.getSession(false);

if(session==null) {

        System.out.println("로그인되지 않은 상태"); }

else {

        System.out.println("로그인한 상태"); }

 

명령 형식 <web.xml 세션 유효 시간 설정>

<session-config>

    <session-timeout>3</session-timeout> //단위는 분

</session-config>

명령 형식 <JSP/Servlet 세션 유효 시간 설정>

session.setMaxInactiveInterval(180);  //단위는 초

 

명령 형식 <세션 종료>

session.invalidate(); //session scopeAttribute session이 서버에서 제거