본문 바로가기
Web/JSP

JSP #6 세션(Session)

by 언덕너머에 2014. 12. 23.

 세션(Session)이란 클라이언트와 웹 서버 간에 네트워크 연결이 지속적으로 유지되고 있는 상태를 말한다. Session을 사용하는 이유는 HTTP 프로토콜의 성질 때문이다.

 HTTP 프로토콜은 비연결형 (stateless) 프로토콜이기 때문에 한 페이지가 출력된 다음에 바로 클라이언트와 서버의 연결이 끊어진다. 즉, 클라이언트와 서버는 요청처리가 완료되기 전 까지만 연결되어 있고 그 이후에는 연결이 되어있지 않다.

 이런 문제점은 클라이언트와 서버간의 지속적인 소통에 문제를 준다. 이러한 HTTP 프로토콜의 문제점을 해결하기 위해 나온 것이 Session이다. Session은 사용자와 관련된 정보를 서버에 보관하는 방식이다. ( 이와 유사하게 클라이언트 컴퓨터에서 보관하는 방식인 cookie도 있다.)

 

세션 값 설정

session.setAttrivute(name, value);

name은 String형의 키이고, value는 name 키에 저장하기 위한 object형의 값이다.

예)

String id = request.getParameter("id");

session.setAttribute("id", id);

 

 메 서 드

반 환 값 

설 명 

 getAttribute(name)

object

세션에서 name에 해당되는 값을 반환

 getAttrivuteName()

String배열

세션에서 속성 이름 모두를 배열로 반환 

 getCreationTime()

long

세션 생성시 70년 1월 1일 자정기준으로 1/1000초 단위

값으로 반환

 getID()

String

클라이언트에 할당된 세션 ID 값을 반환

 getLastAccessedTime()

long

클라이언트가 마지막으로 서버에 보낸 요청시간을 반환

 getMaxInactiveInterval()

int

현재 실행중인 세션을 종료

 invalidate()

void

현재 실행중인 세션을 종료

 isNew()

boolean

현재 실행중인 세션이 새로운 것인지 여부를 논리 값으로 반환

 setAttribute()

void

현재 세션이 새로운 이름의 속성을 만들고 그 속성값을 설정

 removeAttrivute()

void

저장된 세션에서 지정한 속성값을 삭제

 setMaxInactiveInterval()

void

세션을 할당받고 아무런 요청이 없을때부터 세션을 유지하는 기간을 설정

 

세션 값 얻어내기

Object 변수명 = session.getAttribute(name);

예)

Object id_getdata = session.getAttribute("id");

String session_id = (String)id_getdata;

 

세션 종료와 제거

- 종료

session.invalidate(); //session 개체를 제거 session.setMaxInactiveInterval(0)과 같음

- 제거

session.removeAttribute(name); //session의 저장된 name객체를 제거

 

세션에 설정된 모든 값 얻어오기

  Enumeration names = session.getAttributeNames();
  while(names.hasMoreElements()) {
   String name = names.nextElement().toString();
   String value = session.getAttribute(name).toString();
   out.println(name + " - " + value + "<br>");
  }

'Web > JSP' 카테고리의 다른 글

JSP #8 서블릿(Servlet)-2 RequestDispatcher & sendRedirect  (0) 2014.12.29
JSP #7 서블릿(Servlet)-1  (0) 2014.12.23
JSP #5 쿠키  (0) 2014.12.22
JSP #4 자바빈의 표준 액션 태그  (0) 2014.12.22
JSP #3 주석  (0) 2014.12.22