본문 바로가기

프로그래밍/JSP

[JSP 요약 정리] 10. 쿠키(Cookie)

10. 쿠키(Cookie)

1) 쿠키(cookie)

- 웹 브라우저가 보관하는 데이터

- 필요시 웹 서버에서 쿠키를 생성해 웹 브라우저에 응답시 함께 전송

-> 웹 브라우저는 쿠키를 쿠키 저장소에 보관

-> 요청시 웹 서버에 쿠키를 함께 전송

-> 전송받은 쿠키를 이용해서 필요한 작업 수행


2) 쿠키의 구성

- 쿠키의 구성요소

이름: 쿠키의 식별자

값: 식별자가 가진 값

유효시간: 쿠키의 유지 시간

도메인: 쿠키를 전송할 도메인

경로: 쿠키를 전송할 요청 경로


3) 쿠키 생성

- 쿠키 클래스를 이용해서 쿠키를 생성

- 양식

<%

Cookie cookie = new Cookie("cookieName", "cookieValue"); // 쿠키 생성

response.addCookie(cookie); // 웹 브라우저에 전송

%>


4) 쿠키 클래스의 메소드

String getName() : 쿠키 이름 반환

String getValue() : 쿠키 값 반환

void setValue(String value) : 쿠키 값 지정

void setDomain(String pattern) : 쿠키가 전송될 서버의 도메인 지정

String getDomain() : 쿠키의 도메인 반환

void setPath(String uri) : 쿠키를 전송할 경로 지정

String getPath() : 쿠키의 전송 경로 반환

void setMaxAge(int expiry) : 쿠키의 유효시간을 초 단위로 지정

int getMaxAge() : 쿠키의 유효시간 반환(초 단위)


5) 쿠키 값 읽어오기

- 웹 브라우저는 요청 헤더에 쿠키를 저장해서 전송한다.

- 양식

Cookie cookies[] = request.getCookies();


- 사용 예시

Cookie cookies[] = request.getCookies();

if(cookies != null && cookies.length > 0){

for(int i = 0 ; i < cookies.length ; i++) {

name[i] = cookies[i].getName()

value[i] = URLDecoder.decode(cookies[i].getValue(), "utf-8");

}

}


6) 쿠키 값 변경 및 쿠키 삭제하기

- 변경: 같은 쿠키 이름의 쿠키 객체를 생성해서 응답 데이터에 추가

- 삭제: setMaxAge() 메소드를 이용, 매개변수로 0 입력시 삭제됨


7) 쿠키의 도메인

- 같은 도메인을 사용하는 모든 서버에 쿠키를 보내야할 때 도메인 지정

- 사용: setDomain() 메소드를 이용해서 도메인 지정

-> 해당 도메인에 모두 쿠키를 전송

*웹 브라우저는 현재 서버의 도메인과 다른 도메인에 대한 쿠키 생성은 허용하지 않음


- 예시

setDomain(".naver.com"); // 도메인 지정

-> mail.naver.com, www.naver.com, blog.naver.com 등등 모든 naver.com에 쿠키 저장


8) 쿠키의 경로

- 쿠키를 공유할 기준 경로 지정

- 웹 브라우저는 저장한 쿠키의 경로를 확인하고 해당 경로에 맞춰서 쿠키를 전송

- 사용: setPath() 메소드 사용