JAVA-WEB January 02, 2021

JSP-03 CooKie

Words count 4.1k Reading time 4 mins.

쿠키는 서버에서 만든다

자바 영역은 서버 영역

  1. 쿠키 생성
    Cookie cookie = new Cookie(“name”, “emily”);

    쿠키이름 :name, 쿠키 값 : emily

  2. 쿠키 유효 기간 정하기 (초 단위)

    cookie.setMaxAge(-1); 브라우저 종료까지

    cookie.setMaxAge(60); 1분(60초),

    cookie.setMaxAge(60 * 60); 1시간

    cookie.setMaxAge (60 * 60 * 24); // 1일

  3. 쿠키 저장 (클라이언트에게 쿠키 보내기)

    response.addCookie(cookie);


addCookie-01.jsp


<title>Insert title here</title>
</head>
<body>


    <%-- 크롬 > 설정 > 개인 정보 및 보안 > 쿠키 및 기타 사이트 > 모든 쿠키 및 사이트 데이터 보기 > localhost 검색 --%>    

    <h3>쿠키 확인하기</h3>
    <ul>
        <li>쿠키이름 : <%=cookie.getName() %></li>
        <li>쿠키유효기간 : <%=cookie.getMaxAge() %></li>
        <li>쿠기 값 : <%=cookie.getValue() %></li>
    </ul>

</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

    <%--
        특정 쿠키를 변경하는 방법
        1. 서버가 클라이언트의 모든 쿠키를 읽어 들인다.
        2. 변경할 쿠키를 찾는다.
        3. 같은 이름의 쿠키를 만들어서 덮어쓰기 한다.
     --%>

     <%

        // 1. 전체 쿠키를 읽어 들인다. 
         Cookie[] cookieList = request.getCookies();

         // 2. 변경할 쿠키를 선언해 둔다.
         Cookie ck = null;

         // 3. 쿠키를 찾는다
         if (cookieList != null && cookieList.length != 0) {
             for (Cookie cookie : cookieList) {
                 if (cookie.getName().equals("name")) {    // name 속성이 있다면
                     ck = new Cookie("name", "amanda");    // amanda 로 값을 바꾼다
                     ck.setMaxAge(60 * 60 * 24);            
                     response.addCookie(ck);    // 쿠키 저장
                 }
             }
         }

     %>

     <h3>쿠키 확인하기</h3>
    <ul>
        <li>쿠키이름 : <%=ck.getName() %></li>
        <li>쿠키유효기간 : <%=ck.getMaxAge() %></li>
        <li>쿠기 값 : <%=ck.getValue() %></li>
    </ul>

</body>
</html>


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

    <%

        // 쿠키 삭제
        // maxAge가 0인 같은 이름의 쿠키로 덮어쓰기

        // 1. 모든 쿠키 읽어 들이기
        Cookie[] cookieList = request.getCookies();

        // 2. 쿠키가 존재하는지 확인
        if (cookieList != null && cookieList.length != 0) {
            // 3. 쿠키 순회하기
            for (Cookie ck : cookieList) {
                if (ck.getName().equals("name")) {
                    // 4. 덮어쓰기 할 쿠키 생성
                    Cookie cookie = new Cookie("name", "의미없음");
                    cookie.setMaxAge(0);    // 삭제를 위해 유효기간을 0으로 설정
                    response.addCookie(cookie);
                }
            }
        }
    %>

</body>
</html>
0%