Cookie 쿠키 사용하기
웹 브라우저가 보관하고 있는 데이터로서, 웹 즈라우저가 웹 서버에 요청을 보낼 때 쿠키를 함께 전송
쿠키는 웹 브라우저, 웹 서버 양쪽에서 생성할 수 있고, 웹 서버는 웹 브라우저가 전송한 쿠키를 사용하여 필요한 데이터를 읽어 올 수 있다.
▣ 쿠키 사용 단계
- 쿠키 생선 단계 : JSP 에서는 주로 웹 서버 측에서 생성, 생선된 쿠키는 응답 데이터에 함께 저장, 웹 브라우저에 전송된다.
- 쿠키 저장 단계 : 웹 브라우저는 한번 저장된 쿠키를 요청이 있을 때마다 쿠키를 쿠키 저장소에 보관한다. (종에 따라 메모리나 파일로 저장)
- 쿠키 전송 단계 : 웹 브라우저는 한번 저장된 쿠키를 요청이 있을 때마다 웹 서버에 전송한다.
웹 서버는 웹 브라우저가 전송한 쿠키를 사용해 필요한 작업을 수행 할 수 있다.
* 웹 브라우저에 쿠키가 저장되면 웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키를 전송한다.
따라서, 웹 어플리케이션을 사용하는 동안 지속적으로 유지해야 하는 정보는 쿠키를 사용해서 저장한다.
쿠키의 구성
- 이름 : 각각의 쿠키를 구별하는데 사용되는 이름 (주요 구성 요소)
- 값 : 쿠키의 이름과 관련된 값 (주요 구성 요소)
- 유효 시간 : 쿠키의 유지 시간
- 도메인 : 쿠키를 전송할 도메인
- 경로 : 쿠키를 전송할 요청 경로
- 웹 브라우저가 여러 개의 쿠키를 가질 수 있는데 이들은 구분하기 위해서는 이름을 사용한다.
또한 각각의 쿠키는 관련된 값을 가지고 있으며 서버는 이 값을 이용해 원하는 작업을 수행한다.
이름 및 값에 대한 규칙
1 : 쿠키의 이름은 아스키코드의 알파벳과 숫자만을 포함 할 수 있다.
- 쿠키값이 알파벳과 숫자가 아닌 바이너리 값을 포함하고 있는 경우 BASE64 인코딩으로 처리해주어야 함.
2 : 콤마(,), 세미콜론(;), 공배("") 등의 문자는 포함 할 수 없다.
- 이들의 값을 포함하기 위해서는 반드시 인코딩 처리를 해주어야 함
3 : '$' 로 시작할 수 없다.
- 쿠키는 지속성을 갖고 있으며 얼마나 지속할 지의 여부를 지정할 수 있다.
쿠키 생성하기
Cookie 클래스를 사용해서 쿠키를 추가
1 2 3 4 | <% Cookie cookie = new Cookie("cookieName","cookieValue"); response.addCookie(cookie); %> | cs |
2번 줄 |
쿠키 정보를 담고 있는 cookie 객체를 생성(첫번째 인자 : 쿠키 이름, 두번째 인자 : 쿠키의 값) |
3번 줄 |
addCookie 쿠키를 추가 |
- response.addCookie() 메서드를 사용하면 response 기본 객체는 웹 브라우저에 쿠키 정보를 추가로 전송
< -- makeCookie.jsp : 쿠키 생성하기 -- >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <%@page import="java.net.URLEncoder"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% Cookie cookie = new Cookie("name",URLEncoder.encode("자바","utf-8")); response.addCookie(cookie); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <%= cookie.getName() %> 쿠키의 값 = <%=cookie.getValue() %> </body> </html> | cs |
5번 줄 |
추가할 쿠키 정보를 담고 있는 Cookie를 생성, URLEncoder 클래스를 사용해 쿠키의 값을 인코딩 |
6번 줄 |
응답 데이터에 쿠키를 추가 |
< -- makeCookie.jsp : 출력 화면 -- >
▣ Cookie 클래스가 제공하는 메서드
메서드 |
리턴타입 |
설명 |
getName() |
String |
쿠키의 이름을 구한다. |
getValue() |
String |
쿠키의 값을 구한다. |
setValue(String value) |
void |
쿠키의 값을 지정한다. |
setDomain(String pattern) |
void |
이 쿠키가 전송될 서버의 도메인을 지정한다. |
getDomain() |
String |
쿠키의 도메인을 구한다. |
setPath() |
void |
쿠키의 전송 경로를 지정한다. |
getPath() |
String |
쿠기의 전송 경로를 구한다. |
setMaxAge(int expiry) |
void |
쿠기의 유효 시간을 초 단위로 지정, 음수로 입력 할 경우 웹 브라우저를 닫을 때 쿠키가 함께 삭제된다. |
getMaxAge() |
int |
쿠키의 유효 시간을 구한다. |
'JSP' 카테고리의 다른 글
쿠키 사용하기 02_쿠키 값 읽어오기 (0) | 2016.06.02 |
---|---|
response 기본 객체 02_리다이렉트 (0) | 2016.06.01 |
response 기본 객체 01 (0) | 2016.06.01 |
request 기본 객체 06_요청 헤더 정보의 처리 (0) | 2016.05.31 |
request 기본 객체 05_톰캣에서 GET 방식 인코딩 처리 (0) | 2016.05.31 |