본문 바로가기
Java, JSP

[JSP] 쿠키(Cookie)의 개념과 사용법

by LasBe 2022. 2. 13.
반응형

⚡️쿠키(Cookie)란


http 프로토콜은 서버와 클라이언트가 요청, 응답 과정을 거치면 연결이 해제되기 때문에

다시 사용할 정보를 쿠키와 세션에 보관해두었다가 다시 사용할 수 있습니다.

 

그 중, 쿠키는 웹 브라우저가 보관하고 있는 데이터로서 웹 서버에 요청을 보낼 때 함께 전송됩니다.

 

사용자의 웹 브라우저에 직접 저장되는 방식이라 세션보다 비교적 보안에 취약하지만

자동 로그인같은 기능을 구현할 때나 세션 사용이 제한될 때 유용하게 사용됩니다.

 

그럼 쿠키 사용 방법에 대해 알아보겠습니다.


📌 쿠키 생성하기

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

// 쿠키 값 재설정
cookie.setValue("value2");

// 쿠키 유지 시간 설정(초단위)
cookie.setMaxAge(60*2); 

// 쿠키를 클라이언트로 전송
response.addCookie(cookie);

 

쿠키 클래스를 이용한 객체 생성 과정에서 생성자에서는 new Cookie("쿠키 이름", "값")을 넣어 생성해줍니다.

 

setValue() 메소드로는 쿠키의 값을 재설정할 수 있습니다.

 

세션과 마찬가지로 쿠키의 유지 시간을 설정해줄 수 있는데,

setMaxAge() 메소드의 파라미터에 초 단위로 계산됩니다.


📌 쿠키 읽어오기

Cookie[] cookies = request.getCookies(); //client에서 쿠키를 받아옴

String cookieName = "";
String cookieValue = "";

if(cookies!=null){
    for(int i=0;i<cookies.length;i++){
        if(cookies[i].getName().equals("cookieName")){
            cookieName = cookies[i].getName();
            cookieValue = cookies[i].getValue();
        }
    }
}

request.getCookies()로 클라이언트에서 쿠키 정보를 배열 형태로 받아옵니다.

 

쿠키의 읽기 관련 메소드에 대해서는

length로 쿠키의 개수,

getName()으로 쿠키의 이름,

getValue()로 쿠키의 값을 반환받습니다.


📌 쿠키 삭제하기

if(cookies != null){
    for(int i=0; i < cookies.length; i++){
    	// 쿠키 유지시간은 0으로 설정
        cookies[i].setMaxAge(0);
        
        // 변경된 쿠기 정보를 다시 클라이언트에 전달
        response.addCookie(cookies[i]);
    }
}

쿠키 삭제는 setMaxAge() 메소드를 사용해 유지 시간을 0으로 설정해 만료시키는 방법이 있습니다.

 

만약 특정 쿠키를 삭제하려면 if문으로 원하는 쿠키 이름을 리턴 받은 후 설정하시면 됩니다.

 

마지막으로 만료시킨 쿠키를 클라이언트에 전달한 후 마무리합니다.

반응형

댓글


오픈 채팅