본문 바로가기
Java 및 JSP

[JSP] 쿠키(Cookie)

by jane.dev 2021. 8. 5.
반응형
쿠키(Cookie)
웹 브라우저에서 서버로 어떠한 데이터를 요청하면, 서버에서는 알맞은 로직을 수행하고 데이터를 웹 브라우저로 응답함
그리고 HTTP 프로토콜은 응답 후 웹 브라우저와의 관계를 종료함
관계가 종료되고 특정 데이터를 지속적으로 유지시키기 위한 수단으로 사용

 

쿠키는 서버에서 생성해 jsp 페이지에서 가지고 있다가

클라이언트(웹 브라우저)로부터 요청이 들어오면 응답을 줄 때 쿠키를 추가하여 데이터를 전달

쿠키를 받은 웹 브라우저는 쿠키를 세팅하라는 명령을 받고 내부의 쿠키 저장소에 해당 쿠키 값 저장

이렇게 저장된 쿠키는 해당 서버에 요청할 때마다 쿠키를 포함하여 보냄

 

쿠키의 생성 방법

--Cookie_make.jsp(전달)--

1. 쿠키 객체를 생성하고 파라미터에 쿠키의 이름과 저장할 데이터를 입력

Cookie peanut = new Cookie("peanut_cookie", "peanutfavor");	// (name 값, value 값)

 

2. 쿠키의 setter 메서드로 쿠키의 유효시간을 설정

peanut.setMaxAge(20);	// 초 단위

파라미터 내부의 숫자는 초 단위로 한달(30일)로 설정하고자 하면 (60 * 60 * 24 * 30) 로 작성

 

3. response 객체에 쿠키를 추가해 클라이언트에 전달하면 사용자의 웹 브라우저에 해당 정보가 저장됨

response.addCookie(peanut);

 

4. 쿠키를 확인하기 위한 링크

<a href = "Cookie_check.jsp">쿠키 확인</a>

 

--Cookie_check.jsp(수신)--

5. 클라이언트에 저장된 쿠키 조회

request.getCookies();

메서드는 response.addCookie()로 발급된 쿠키 전체 목록을 불러옴

Cookie [] cookies = request.getCookies();

쿠키의 전체 목록을 배열형태로 데이터 받음

 

6. 반복문을 사용해서 해당 쿠키의 name 값과 value 값 조회

String cookieName = null;
String cookieValue = null;
boolean still = false;						// cookie의 유효시간 확인
	for(Cookie cookieInfo : cookies){
		cookieName = cookieInfo.getName();		// cookie name 값
		if(cookieName.equals("peanut_cookie")){
			out.println("I have peanut cookie:).<br>");
			cookieValue = cookieInfo.getValue();	// cookie value 값
			out.println("The peanut cookie is " + cookieValue + ".");
			still = true;
			break;
		}
	}
if(!still){							// cookie 유효시간 종료
	out.println("I don't have peanut cookie :(.<br>");
}

 

출력

쿠키 유효시간 만료 전

 

쿠키 유효시간 만료 후