Back_end/JSP

JSP - 쿠키

hyeon1016 2024. 10. 30. 02:39

쿠키

사용자의 브라우저에 저장되는 작은 데이터로 사용자가 브라우저에 다시 방문할 때 쿠키를 통해 이전 세션을 추적하여 로그인 인증, 장바구니 같은 정보를 유지할 수 있게 한다.

 

WHY?

- 로그인 인증, 장바구니 같은 정보를 사용자가 브라우저를 종료해도 유지하게 하기 위함

 

쿠키와 세션의 차이점

구분 쿠키 세션
저장 장소 클라이언트에 저장됨 서버에 저장됨
종료 시점 쿠키를 저장 시 설정 가능
(미설정 시 브라우저 종료시 소멸)
브라우저를 닫으면 사라짐
보안 클라이언트에 저장되어 있기 때문에 보안에 취약하다. 서버에 저장되어 있기 때문에 상대적으로 안전하다.

 

메서드

메서드 반환타입 설명
getComment() String 쿠키의 설명 반환(사용자에게 쿠키의 목적을 알릴 때)
getDomain() String 쿠키의 유효한 도메인 정보 반환
getMaxAge() int 쿠키의 유효 기간을 반환(초 단위)
setMaxAge() void 쿠키의 유효 기간을 설정
getName() String 쿠키의 이름 반환
getPath() String 쿠키의 유효한 디렉터리 정보 반환
getSecure() boolean 쿠키의 보안 설정 반환(HTTPS 연결에만 전송되는지)
getValue() String 쿠키에 저장된 값을 반환
getVersion() int 쿠키의 버전을 반환(0 / 1)
setComment(String) void 쿠키에 대한 설명을 설정
setDomain(String) void 쿠키의 도메인을 설정
setPath(String) void 쿠키의 디렉터리 설정
setSecure(boolean) void 쿠키의 보안 설정(HTTPS 연결에만 전송)
setValue(String) void 쿠키의 값을 설정
setVersion(int) void 쿠키의 버전을 설정 (0 / 1)

 

 

쿠키 생성 방법

Cookie() 생성자

Cookie cookie = new Cookie("String key", String value);
response.addCookie(cookie);

 

Cookie() 생성자를 사용해 객체 생성과 동일한 방법으로 쿠키를 생성할 수 있다.

*쿠키를 생성한 후에는 반드시 response 내장 객체의 addCookie() 메서드로 쿠키를 설정해야 한다.

 

 

쿠키 정보

쿠키 객체 얻기

Cookie[] cookies = request.getCookies();

 

클라이언트에 저장된 모든 쿠키를 가져올 수 있다.

 

쿠키의 정보 얻기

for(int i=0; i<cookies.length; i++){
    String name = cookies[i].getName();
    String value = cookies[i].getValue();
}

 

getName(), getValue() 메서드를 사용해 getCookies() 메서드로 가져온 쿠키의 정보를 얻을 수 있다.

*반드시 반복문과 함께 사용해야한다.

 

 

쿠키 삭제

String id = "admin";
Cookie cookie = new Cookie("id", id);
cookie.setMaxAge(0);
response.addCookie(cookie);

 

setMaxAge() 메서드의 파라미터를 0으로 설정하면 쿠키의 유효 기간을 0초로 설정하여 쿠키를 삭제할 수 있다.(즉사)