일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 봄카드
- query
- oracle
- 웨딩박람회
- db
- 문법
- 이클립스
- IT
- 스드메
- MySQL
- 결혼식준비
- JSP
- 청첩장
- transaction
- jQeury
- 결혼준비
- 코딩테스트
- Java
- 날짜함수
- 웨딩준비
- 결혼식
- 봄카드청첩장
- SonarLint
- JavaScript
- 예비신혼부부
- VS Code
- 자바
- 코드인스펙션
- 트랜젝션
- Today
- Total
구내식당
Cookie(쿠키) 본문
1. 쿠키(Cookie)
- API : http://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html
- 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청을 보낼 때 쿠키를 함께 전송한다.
- 웹 서버는 전송받은 쿠키를 사용하여 필요한 데이터를 읽어올 수 있다.
- 웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키를 전송한다.
- 웹 어플리케이션을 사용하는 동안 지속적으로 유지해야 하는 정보는 쿠키를 사용해서 저장한다.
- 쿠키는 지속성을 갖고 있고 얼마나 지속할 지의 여부를 지정할 수 있다.
2. 쿠키 동작 방식
- 쿠키 생성 : JSP 프로그래밍에서 쿠키는 주로 웹 서버 측에서 생성한다. 생성된 쿠키는 응답 데이터에 함께 저장되어 웹 브라우저에 전송된다.
- 쿠기 저장 : 웹 브라우저는 응답 데이터에 포함된 쿠키를 저장소에 보관한다. 쿠기의 종류에 따라 메모리나 파일로 저장된다.
- 쿠기 전송 : 웹 브라우저는 한번 저장된 쿠키를 매번 요청이 있을 때마다 웹 서버에 전송한다. 웹 서버는 쿠키를 사용해서 필요한 작업을 수행할 수 있다.
3. 쿠키 구성
- 쿠키의 주요 구성 요소는 이름과 값이다.
- 하나의 웹 브라우저가 여러 개의 쿠키를 가질 수 있다.
- 이름 : 각각의 쿠키를 구별하는데 사용되는 이름
- 값 : 쿠키의 이름과 관련된 값
- 유효 시간 : 쿠키의 유지 시간
- 도메인 : 쿠키를 전송할 도메인
- 경로 : 쿠키를 전송할 요청 경로
- 큐키의 이름 및 값에 대한 규칙이 정의되어 있다.
- 쿠키의 이름은 아스키 코드의 알파벳과 숫자만을 포함할 수 있다.
- 콤마(,), 세미콜론(;), 공백(' ') 등의 문자는 포함할 수 없다.
- '$'로 시작할 수 없다.
- 쿠키의 값이 알파벳과 숫자가 아닌 바이너리 값을 포함하고 있는 경우 BASE64 인코딩으로 처리해야 한다.
4. 쿠키 생성
- Cookie cooke = new Cookie("쿠키명", "쿠키값");
- response.addCookie(cookie);
- Cookie 클래스를 사용하여 객체를 생성하고 인자값은 쿠키이름과 쿠키 값을 지정한다.
- response 기본 객체의 addCookie() 메서드를 사용하여 쿠키를 추가한다.
메서드 | 반환형 | 설명 |
getName() | String | 쿠키의 이름을 구한다. |
getValue() | String | 쿠키의 값을 구한다. |
setValue(String value) | void | 쿠키의 값을 지정한다. |
setDomain(String pattern) | void | 이 쿠키가 전송될 서버의 도메인을 지정한다. |
getDomain() | String | 쿠키의 도메인을 구한다. |
setPath(String uri) | void | 쿠키를 전송할 경로를 지정한다. |
getPath() | String | 쿠키의 전송 경로를 구한다. |
setMaxAge(int expiry) | void | 쿠키의 유효 시간을 초 단위로 지정한다. 음수를 입력할 경우 웹 브라우저를 닫을 때 쿠키가 함께 삭제된다. |
getMaxAge() | int | 쿠키의 유효 시간을 구한다. |
<!-- setCookie.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String name = "gz", addr ="seoul"; Cookie cookie1 = new Cookie("name", name); Cookie cookie2 = new Cookie("addr", addr); response.addCookie(cookie1); response.addCookie(cookie2); %>
5. 쿠키 값 읽기
- Cookie[] cookies = request.getCookies();
- 웹 브라우저는 요청 헤더에 쿠키를 저장해서 보낸다.
- getCookies() 메서드는 Cookie 배열을 반환하고 쿠키가 존재하지 않을 경우에는 null을 반환한다.
<!-- getCookie.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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>쿠키</title> </head> <body> <% String key = "", value = ""; Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length >= 1) { for (Cookie c : cookies) { key = c.getName(); value = c.getValue(); out.print(key + " : " + value + "<br>"); } } %> </body> </html> <!-- 실행결과 name : gz addr : seoul -->
6. 쿠키 값 변경 및 쿠키 삭제
- 변경 : 같은 이름의 쿠키를 새로 생성해서 데이터로 보낸다.
- 삭제 : Cookie 클래스의 setMaxAge() 메서드를 호출할 때 인자 값으로 0을 준다.
7. 쿠키 유효시간
- 유효시간을 지정하지 않을 경우 웹 브라우저를 닫을 때 쿠키는 자동으로 삭제된다.
- setMaxAge() 메서드를 사용한다.
출처 - http://gangzzang.tistory.com/entry/JSP-%EC%BF%A0%ED%82%A4Cookie
'IT > Client' 카테고리의 다른 글
onclick 이벤트가 안먹힐때 (0) | 2017.01.26 |
---|---|
javasript 함수 모음 (0) | 2017.01.23 |
좋은 라이브러리 모음집 (0) | 2016.11.21 |
jQery select Box 선택된 값 가져오기! (0) | 2016.11.16 |
Jsp - Get, Post 넘길시 한글깨짐 (0) | 2016.11.10 |