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 |
댓글
댓글 쓰기