공부해요/JSP

[ 모델2로 구현하는 자바 웹 프로그래밍 JSP2.2 & Servlet3.0 따라하기 ] 8

예쁜꽃이피었으면 2014. 7. 29. 00:07

chapter 08 세션(session)과 쿠키(cookie)

8.1 세션(Session)

           - 서버 측의 컨테이너에서 관리되는 정보.

           - 컨테이너에 접속해서 종료되기까지(브라우저 종료) 유지되며, 접속 시간에 제한을 두어 일정 시간

응답이 없으면 정보는 유지되지 않는다 (보안적으로 유리하다)

 

1)     http프로토콜의 특성

http : 웹 상에서 텍스트, 이미지, 사운드 등의 파일들을 주고 받기 위한 통신 규약

데이터 송/수신을 하자마자 바로 연결이 끊기게 된다.

 

2)     세션의 개요

클라이언트와 서버간의 접속을 유지시켜주는 역할

 

3)     jsp에서 세션관리

메소드

설명

setAttribute(string name,Object value)

세션 객체에 속성을 저장한다

removeAttribute(String name)

저장된 속성을 제거한다

getAttribute(String name)

저장된 속성을 반환한다.

getId()

클라이언트의 세션 ID값을 반환한다.

setMaxInactiveInterval(int seconds)

세션의 유지 시간을 설정한다.

getMaxInactiveInterval()

세션의 유지 시간을 반환한다.

Invalidate()

현재의 세션의 정보들을 모두 제거한다.

     setAttribute

- seesion.setAttribute("name”,”김하늘”);

세션 객체에 김하늘이라는 값이 들어있는 name속성을 저장하는 역할을 한다.

세션은 유지 시간을 초과하지 않은 한 브라우저를 종료하지 않게되면 name속성은 잃지 않음

                     - String name = (String)session.getAttribute(“name”);

                       세션 객체에서 name 속성을 얻어오는 역할

                       setAttribute할 때 String형태로 값을 입력했기 때문에 받을 때도 String형태로 선언한

name변수에 대입.

getAttribute의 인자는 하나뿐이며 그 인자 값은 속성명을 의미한다.

getAttribute의 기본적인 반환 값 타입은 object이므로 String으로 형변환 필요

예를 들어 Student클래스가 들어있는 것을 반환할 경우

Student student = (Student)session.getAttribute(“student”);로 형변환 필요

     removeAttribute

- session.removeAttribute(“name”);

 저장되어 있는 속성값 제거시 사용(더 이상 필요없을 떄)

     setMaxInactiveInterval

- session.setMaxInactiveInterval(1000);

     getMaxInactiveInterval

- session.setAttribute(“name”,”김하늘”);

     invalidate

- 세션의 모든 속성을 제거. 세션초기화와 같은 효과

8.2 쿠키(Cookie)

  1) 쿠키의 개요

    쿠키란 클라이언트 측에서 관리되는 정보. 보안 취약

    (세션은 서버 측에서 관리되지만 쿠키는 클라이언트에 정보가 저장)

2) 헤더를 이용한 쿠키설정

    Set-Cookie: name=value; expires=date; domain=domain; path=path; secure

           Name, value는 필수

3 )서블릿 API를 이용한 쿠키설정

  Cookie cookie = new Cookie(name , value);

 

*쿠키는 객체생성을 해준 후 에 꼭 클라이언트로 전송하는 작업을 해야한다.

 1) Cookie cookie = new Cookie(“name”,”김하늘”);

 2) response.addCookie(cookie);

 1)번 작업은 해주더라도 2)번 작업을 해주지 않으면 쿠키는 저장되지 않은 것과 마찬가지이다.

 2)번이 응답에 쿠키 객체를 추가하는 부분이기 때문이다.

 

반응형