728x90

session오브젝트

앞의 예제는 웹브라우저가 요청하면 웹서버가 응답하는 간단한 구조로 되어 있다.

이러한 웹의 구조는 손님이 가게에 가서 물건을 찾아 달라고 요청하면
가게 주인이 그 물건을 찾아 주는것과 비슷하다.

웹에서는 어떤 물건을 클릭하고
잠시후 다른 물건을 클릭하더라도 
웹서버는 같은 사용자가 요청했는지
다른 사용자가 요청했는지
구별하지 않는다는 것이다.

이렇게 누가 요청을 했는지 구별하지 않고 
단순하게 요청한 파일만 읽어서 서비스 하므로 
웹서버 부담을 줄일수 있다는 장점도 있지만,

쇼핑몰 같이 구매 제품을 클릭할 때마다 누가 클릭했는지 기억해야 하는
사이트에서는 웹서버쪽에 사용자별 기록을 남겨야만 할 것입니다.

웹 서버쪽에 기억 시키는 것을 세션이라고 하고
JSP파일에서는 session오브젝트을 통하여 이용할 수 있습니다.


session오브젝트 메소드

//putValue(name,value)..... session에 name, value 값의 항목를 추가
//getValue(name) ...... session에서 name에 해당하는 value값 읽어오기

setAttribute(name,vlaue) ... session에 name,value값의 항목을 추가 한다 ( 저장 )
getAttribute(name) ... session에서 name 해당하는 value을 읽어 온다 

long getCreateTime() ... 해다 세션을 생성한 시간을 리턴한다 
long getLastAccessedTime() ... 윕 브라우저의 요청이 시도된 마지막 접근 시간을 리턴한다 

String getId() ...해당 세션의 고유한 세션 ID를 리턴한다 

void setMaxInactiveInterval(time) ... 세션 유지 시간을 설정 한다 ( 초 단위로 )
int getMaxIncactiveInterval() ... 세션 유지 시간을 얻는다 

isNew () ..... session이 이번 요청시 새로 생성 되었는지 여부를 리턴 
invalidate() ...... session을 없애기( 세션 무효화)

Jsp파일에서는 session오브젝트는 자동으로 생성되며
page지시자에 session="false" 라고 지정함으로써 
session오브젝트을 생성되지 않게 할 수 있다.

HttpSession getSession() ...세션객체가 추가/삭제 될때 세션을 리턴합니다 

req.getSession(true)...true는 새로운 세션을 create 하고
req.getSession(false)...false 는 현재 세션을 그대로 리턴 해주고 
req.getSession().... 세션 존재 여부를 확인하여 session이없으면 새로이 세션을 생성해주고
                     session이 있다면 그대로 return 해준다. 위위 2개의 장점을 취한 것이다 

+ Recent posts