[Jsp] Cookie

 Cookie : 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일

Cookie의 역할

- 세션 관리 

서버가 알아야 할 정보들을 저장

ex) 로그인, 접속시간, 장바구니 등


- 개인화

사용자마다 다른게 적절한 페이지 제공

ex) 웹 환경설정


- 트래킹

사용자의 행동과 패턴 분석 및 기록

ex) 구매기록, 시청기록



- Name : 쿠키를 구분하기 위해 붙인 이름

- Value : 저장하고자 하는 갑

- Domain : 쿠키가 허용된 도메인

   ->자기가 만들어진 서버에서만 사용이 가능함을 의미

Expire/Max-age : 유효기간을 의미

  ->Session 이라는 값은, 브라우저를 닫기까지가 유효 기간 임을 의미


※Cookie 동작 원리


->응답을 받은 시점(2. 첫번째 요청에 대한 응답)에 Cookie 가 저장됨


실습 예제


ex04list.jsp









ex04mouse.jsp


ex04phone.jsp


ex04computer.jsp


※ 각 페이지를 생성하고, ex04list.jsp에는 Cookie를 이용하여 이전에 본 모든 항목을 표기할 것

-확인 한 항목의 이름을 아래에 띄울 것 


※ex04list.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<%@page import="java.net.URLDecoder"%>
<%@ 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>
    <h1>판매 목록</h1>
    <ul>
        <!-- 리스트 생성-->
        <li><a href = "ex04mouse.jsp">마우스</a></li>
        <li><a href = "ex04phone.jsp">갤럭스 노트S22</a></li>
        <li><a href = "ex04computer.jsp">사무용 PC</a></li>
    </ul>
    
    <hr>
    
    <h2>최근 본 상품</h2>
    <%    
        //cookie를 저장할 배열 선언 및 초기화
        Cookie []cookies = request.getCookies();
    
        for(Cookie c : cookies){
            String name = c.getName();
            //cookie를 이용해 이전 확인한 항목을 가져옴
        
            if(name.contains("item")){
                //각 항목의 이름은 item_으로 시작함
    
                String value = c.getValue();
 
                //디코딩 및 
                value = URLDecoder.decode(value,"utf-8");
                out.println(value+"<br>");
            }
        }
    %>
    
</body>
</html>
cs


※ex04mouse.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<%@page import="java.net.URLEncoder"%>
<%@ 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>
마우스에 대한 상세 페이지입니다.<br>
모델명: 로지텍 게이밍 마우스<br>
제품가격 : 21,900원<br>
<a href = "ex04list.jsp">제품 목록 페이지</a>
<!--항목 방문에 대한 cookie 생성-->
<%
    String encoded = URLEncoder.encode("로지텍 게이밍 마우스","utf-8");
    //쿠키 생성 및 생존 시간 설정(1시간)
    Cookie cookie = new Cookie("item_mouse",encoded);
    cookie.setMaxAge(60*60);
    response.addCookie(cookie);
 
%>
</body>
</html>
cs


※ex04phone.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<%@page import="java.net.URLEncoder"%>
<%@ 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>
갤럭시 노트s22에 대한 상세 페이지입니다.<br>
모델명: 갤럭시 노트s22<br>
제품가격 : 1,397,000<br>
<a href = "ex04list.jsp">제품 목록 페이지</a>
<!--항목 방문에 대한 cookie 생성-->
<%
    String encoded = URLEncoder.encode("갤럭시 노트s22","utf-8");
    //쿠키 생성 및 생존 시간 설정(1시간)
    Cookie cookie = new Cookie("item_phone",encoded);
    cookie.setMaxAge(60*60);
    response.addCookie(cookie);
    
%>
</body>
</html>
cs


※ex04computer.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<%@page import="java.net.URLEncoder"%>
<%@ 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>
사무용 PC에 대한 상세 페이지입니다.<br>
모델명: 사무용 PC<br>
제품가격 : 159,000원<br>
<a href = "ex04list.jsp">제품 목록 페이지</a>
 
<%
    String encoded = URLEncoder.encode("사무용 PC","utf-8");
    Cookie cookie = new Cookie("item_computer",encoded);
    cookie.setMaxAge(60*60);
    response.addCookie(cookie);
 
%>
</body>
</html>
cs

댓글