[java] 서블릿에서의 쿠키 사용법

서블릿에서 쿠키(Cookie)를 사용하면 클라이언트 측에 데이터를 저장하고 관리할 수 있습니다. 이를 통해 웹 애플리케이션에서 사용자의 상태를 유지할 수 있고, 로그인 정보나 사용자의 선호 설정 등을 저장할 수 있습니다.

쿠키 생성하기

쿠키를 생성하기 위해서는 javax.servlet.http.Cookie 클래스의 인스턴스를 생성하고, response 객체의 addCookie() 메서드를 사용하여 쿠키를 클라이언트에게 전송합니다.

다음은 쿠키를 생성하는 예제입니다.

Cookie cookie = new Cookie("username", "john");
response.addCookie(cookie);

위 코드는 username이라는 이름으로 john이라는 값의 쿠키를 생성하고, 클라이언트에게 전송하는 코드입니다.

쿠키 읽기

클라이언트로부터 전송된 쿠키를 서블릿에서 읽기 위해서는 request 객체의 getCookies() 메서드를 사용합니다.

다음은 쿠키를 읽어온 후, 해당 쿠키의 값을 출력하는 예제입니다.

Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        String name = cookie.getName();
        String value = cookie.getValue();
        System.out.println(name + ": " + value);
    }
}

위 코드는 클라이언트로부터 전송된 모든 쿠키를 읽어와서 이름과 값을 출력하는 코드입니다.

쿠키 수정 또는 삭제하기

쿠키를 수정하거나 삭제하려면 수정할 쿠키를 가져와서 값을 변경하거나, setMaxAge() 메서드를 사용하여 만료 시간을 설정합니다.

다음은 쿠키를 수정하고 삭제하는 예제입니다.

Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if (cookie.getName().equals("username")) {
            // 쿠키 값 수정
            cookie.setValue("mary");
            
            // 쿠키 삭제
            cookie.setMaxAge(0);
            
            // 클라이언트에게 수정된 쿠키를 전송
            response.addCookie(cookie);
        }
    }
}

위 코드에서는 username이라는 이름의 쿠키를 찾아서 값을 mary로 변경하고, 쿠키를 삭제한 후 수정된 쿠키를 클라이언트에게 전송하는 코드입니다.

참고 자료