쿠키의 필요성
서로 연관 없는 페이지들을 접속할 때는 비 연결지향형 프로토콜이 아무 문제 없음.
쇼핑몰처럼 이전 페이지에 골라 놓은 상품을 장바구니에 담아 두면 다음 페이지로 이동하더라도 장바구니에 담긴 정보를 유지되도록 하려면 HTTP로 웹 서비스의 구현에 어려움이 있음.
HTTP의 비 연결지향형 서비스의 단점을 극복하기 위해서 쿠키를 사용함.
쿠키란 무엇인가?
쿠키는 사용자의 정보를 클라이언트 컴퓨터의 하드디스크에 저장하는 것
클라이언트의 일정 폴더에 정보를 저장하여 서버의 동작에 무리를 주지 않고 사용자의 정보를 적절하게 사용하게 함.
필요로 하는 웹 페이지가 웹 서버에 요청될 때 저장해 놓은 쿠키에 대한 정보를 웹서버에 건네 줌.
쿠키의 생성 방법
쿠키 객체를 생성
쿠키에 속성 값을 설정해 줌
response 객체의 addCookie() 메소드를 호출하여 쿠키를 추가.
쿠키의 크기는 4KB이하로 제한하며 300개 까지의 데이터 배열을 저장할 수 있음. 즉, 최대 용량은 4KB 300개 = 1.2MB
오래된 정보를 자동으로 삭제되며 이미지 정보를 경로만 저장함.
메소드 설명
void setComment(String) 쿠키에 대한 설명을 설정
void setDomain(String) 쿠키의 유효한 도메인을 설정
void setMaxAge(int) 쿠키의 유효한 기간을 설정. 초 단위로 설정.
void setPath(String) 쿠키의 유효한 디렉토리를 설정
void setSecure(boolean) 쿠키의 보안을 설정
void setValue(String) 쿠키의 값을 설정
void setVersion(int) 쿠키의 버전을 설정
String getComment() 쿠키에 대한 설명을 알려줌
String getDomain() 쿠키의 유효한 도메인 정보를 알려줌
int getMaxAge() 쿠키의 사용할 수 있는 기간 정보를 알려줌
String getName() 쿠키의 이름을 알려줌
String getPath() 쿠키의 유효한 디렉토리 정보를 알려줌
String getSecure() 쿠키의 보안이 어떻게 설정되어 있는지를 알려줌
String getValue() 쿠키에 설정된 값을 알려줌
int getVersion() 쿠키의 버전을 알려줌
<%@ 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>
<%
// Cookie 객체 생성
Cookie c = new Cookie("id", "kdhong");
// 유효기간 설정
c.setMaxAge(365 * 24 * 60 * 60); // 유효기간 1년
// 클라이언트에 쿠키 전송
response.addCookie(c);
//
response.addCookie(new Cookie("pwd", "1234"));
response.addCookie(new Cookie("age", "29"));
%>
</body>
</html>
chrome기준으로
F12 > application > Cookies 를 들어가서 확인할 수 있다.
'JSP, Servlet > JSP, Servlet 기초' 카테고리의 다른 글
[JSP/Servlet] Cookie 지우기 (0) | 2020.08.11 |
---|---|
[JSP/Servlet] Cookie 값 얻어오기 (0) | 2020.08.11 |
[JSP/Servlet] 액션태그 기초(feat. jsp:include) (0) | 2020.08.11 |
[JSP/Servlet] 액션태그 기초(feat. jsp:param), 사용자별 로그인 페이지 다르게하기 (0) | 2020.08.11 |
[JSP/Servlet] 액션태그 기초(feat. jsp:forward) (0) | 2020.08.11 |