본문 바로가기

Programming/과거포스팅

쿠키(Cookie)

쿠키에 대해서 알아보자

쿠키는 클라이언트 측에서 관리돼는 정보를 의미한다

세션과의 차이는 서버와 클라이언트 어느쪽에서 관리돼는가에 따라서 구분된다.

쿠키는 세션과 달리 브라우저를 종료한다고 해서 데이터가 사라지지 않고 하드디스크에 보관되기 때문에

보안에 대한 염려가 있다..

그러므로 중요한 데이터는 쿠키로 저장해서는 안된다.

쿠키를 이용한 간단한 예제를 보도록하자 

프로젝트 구조와 화면은 아래와 같다.



 첫번째 화면에서 쿠키를 설정하고 두번째 화면에서 설정된 쿠키를 받아 화면에 뿌려주었다.

소스를 보자. 

 cookieTest.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
    Cookie cookie = new Cookie("cookieName_Test", "cookieValue_Test"); //쿠키 이름과 값을 설정한다.
    cookie.setMaxAge(600); // 쿠키 시간 설정 초단위이다. 600초니깐 10분이다.
    response.addCookie(cookie);
%>
<html>
<head>
<title>CookieTest</title>
</head>
<body>
<h2>쿠키 이름 설정: <%=cookie.getName() %></h2>
<h2>쿠키 값 설정: <%=cookie.getValue() %></h2>
<h2>쿠키유효시간() 설정 : <%=cookie.getMaxAge() %></h2>
<a href="cookieRequest.jsp">쿠키 값 불러오기</a>
</body>
</html>

cookieRequest.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
    String name  = "";
    String value = "";
    String cookie = request.getHeader("Cookie"); //쿠키를 받아온다. 쿠키는 10분간만 유효하다.
    
    if(cookie != null)
    {
        Cookie [] cookies = request.getCookies(); //받아온 쿠키를 배열에 담는다.
        
        for(int i=0; i<cookies.length; i++    )
        {
            name  = cookies[i].getName();
            value = cookies[i].getValue();
        }
    }
%>
<html>
<head>
<title>CookieTest</title>
</head>
<body>
<h2>쿠키 NAME TEST : <%=name %></h2>
<h2>쿠키 VALUE TEST : <%=value %></h2>
</body>
</html>