[쿠키]_1 생성, 확인, 재설정, 삭제

2021. 9. 16. 18:02jsp

사용자가 특정 웹사이트를 방문했을 때 서비스 사용에 필요한 데이터를 웹 서버의 요청에 의해 사용자의 컴퓨터 내 저장한 후 웹 클라이언트가 서비스를 다시 요청할 때 첨부하여 웹 서버에 전송하는 방식으로 진행

 

1. 쿠키 생성

Cookie 클래스는 객체 생성과 동시에 쿠키의 이름과 값 지정(new Cookie("cookieName","cookieValue"))

response 내장객체의 addCookie() 메서드를 사용하여 Cookie 객체를 첨부

<%
Cookie cookie = new Cookie("CookieTest", "Hello, Cookie!");  
response.addCookie(cookie);  
%>

 

2. 쿠키 확인

request.getCookies() 메서드는 cookie 배열을 리턴한다.

<%
	Cookie[] cookies = request.getCookies();
	if (cookies != null && cookies.length > 0) {
		for (int i = 0 ; i < cookies.length ; i++) {
        if(cookies[i].getName().equals("CookieTest")){
%>
<%=쿠키의 이름 : <%= cookies[i].getName() %> <br/>		 	//CookieTest 가 출력됨
<%=쿠키의 값 : <%= cookies[i].getValue() %> </br/>			//Hello, Cookie! 가 출력됨
<%=쿠키의 유효시간 : <%= cookies[i].getMaxAge() %> <br/>  	 	 //-1이 출력됨

지속시간이 지정되지 않은 쿠키는 웹 브라우저가 종료되면 자동으로 삭제됨

 

3. 쿠키 값 재설정

쿠키 값을 변경하려면 기존 쿠키의 존재 여부를 확인한 후 setValue() 메서드를 사용하여 쿠키 값을 변경한다.

<%
	Cookie[] cookies = request.getCookies();
	if (cookies != null && cookies.length > 0) {
		for (int i = 0 ; i < cookies.length ; i++) {
        if(cookies[i].getName().equals("CookieTest")){
%>
<%
cookies[i].setValue("MyCookie's value was changed!");
response.addCookie(cookies[i]);
%>

 

4. 쿠키 삭제

setMaxAge() 메서드를 호출할 때 인자 값으로 0을 준다.

<%
	Cookie[] cookies = request.getCookies();
	if (cookies != null && cookies.length > 0) {
		for (int i = 0 ; i < cookies.length ; i++) {
        if(cookies[i].getName().equals("CookieTest")){
%>
<%
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
%>

 

5. 쿠키의 도메인 설정 

setDomain() 메서드 사용

특정 도메인에 대해서만 쿠키를 전송하거나 점을 사용해서 관련 도메인에 모든 쿠키를 전송한다.

Cookie cookie = new Cookie("param", "test");
cookie.setDomian(".testcookie.com");      //testcookie 관련 도메인에 모든 쿠키를 전송한다
response.addCookie(cookie);

 

6. 쿠키의 유효시간

쿠키의 유효시간을 지정하지 않으면 웹 브라우저를 종료할 때 쿠키를 함께 삭제한다.

setMaxAge() 메서드를 사용하여 유효 시간을 지정하면 그 유효시간 동안 쿠키가 존재하며, 웹 브라우저를 종료해도 쿠키를 삭제하지 않는다.

<% 
    Cookie cookie = new Cookie("oneh", "1time");
    cookie.setMaxAge(60*60);	//1시간
    response.addCookie(cookie);
%>