finerss's world!

쿠키(cookie)

공부/JavaScript2011. 6. 29. 17:58

원래 쿠키는 세션을 지원하기 위하여 고안된 것이지만, 다른 목적으로 사용하여도 무방하다.

서버와 클라이언트간에 교환하는 조그마한 데이터(이름/값의 String 쌍) 이다.

서버가 클라이언트로 쿠키를 보내면, 클라이언트는 새로운 요청을 보낼떄 쿠키를 돌려보낸다.

쿠키에 관한 것 중 재미있는 것은 사용자는 전혀 이 과정에 개입하지 않는다는 것이다.
쿠키의 교환은 자동적으로 이루어진다( 클라이언트가 쿠키기능이 가능하게 설정되어 있다는 가정 하에)

쿠키는 디폴트로 세션과 생존 범위가 같다. 클라이언트가 브라우저를 중지하면, 쿠키도 사라진다.
이것이 "JSESSIONID"가 동작하는 방식이다. 그러나 브라우저를 중지하더라도 쿠키는 계속 유지하도록 할 수도 있다.

서블릿 API로 쿠키 사용하기

Http Request와 Response 에서 쿠키 관련 헤더 정보를 핸들링 할 수있다. 다음 3개의 클래스에 이들이 정의 되어 있다.



Cookie 객체를 생성한다

 Cookie cookie =new Cookie("username", name);
//Cookie 클래스 생성자는 "이름/값" 쌍을 인자로 받는다.

쿠키가 클라이언트에 얼마나 오랬동안 살아 있을지 설정한다.

cookie.setMaxAge(30*60);
//setMaxAge()는 초단위로 설정한다. 30분 동안 클라이언트에 살아있어라는 의미이며,
-1을 설정하면 쿠키는 파일 같은 곳으로 영구적으로 저장되지 않으며, 브라우저가 빠져나가는 대로 지우라는 의미이다.

쿠키를 클라이언트로 보낸다.

response.addCookie(cookie);

클라이언트 Request에서 쿠키(들)를 읽어온다.

Cookie[] cookies = request.getCookies();
for(int i = 0 ; i <cookies.length ; i++){
        Cookie cookie = cookies[i];
        if ( cookie.getName().equels("username")){
              String userName = cookie.getValue();
              out.println("Hello" + userName);
              break;
        }
}
//getCookie(String) 메소드는 존재하지 않는다
Cookie에서 getCookies()만 호출 가능하다. 원하는 쿠키를 찾으려면 배열을 루프로 돌려야한다.

'공부 > JavaScript' 카테고리의 다른 글

javascript 공백처리, 글자수체크  (0) 2011.11.25
자바스크립트 총정리  (0) 2011.06.30
체크박스 전체해지  (0) 2011.06.13