쿠키 사용
- 쿠키 구성
- 생성
- 값 사용
- 도메인/경로/유효시간
- 쿠키와 헤더
쿠키(Cookie)
- '쿠키(cookie)'는 웹 브라우저가 보관하고 있는 데이터로서 웹 서버에 요청을 보낼 때 함께 전송합니다.
- 동장 박식
쿠키의 구성
구성 요소
- 이름 - 각각의 쿠키를 구별하는 데 사용되는 이름
- 값 - 쿠키의 이름과 관련된 ㄱ밧
- 유효시간 - 쿠키의 유지 시간
- 도메인 - 쿠키를 전송할 도메인
- 경로 - 쿠키를 전송할 요청 경로
쿠키 이름의 제약
- 쿠키의 이름은 아스키코드의 알파벳과 숫자만을 포함할 수 있습니다.
- 콤마(,), 세미콜론(;), 공백(' ')등의 문자는 포함할 수 없습니다.
- '$'로 시작할 수 없습니다.
JSP에서 쿠키 생성 / 읽기
- Cookie 클래스를 이용해서 쿠키 생성
<%
Cookie cookie = new Cookie("cookieName", "cookieValue");
response.addCookie(cookie);
%>
- 클라이언트가 보낸 쿠키 읽기
Cookie[] cookies = request.getCookies();
- 읽기 관련 주요 메서드
메서드 | 리턴타입 | 설명 |
getName() | String | 쿠키의 이름을 구한다. |
getValue() | String | 쿠키의 값을 구한다. |
쿠키 값의 인코딩/ 디코딩 처리
- 쿠키는 값으로 한글과 같은 문자를 가질 수 없습니다.(쿠키의 값을 인코딩해서 지정할 필요 없습니다.)
- 쿠키 값의 처리
= 값 설정시 : URLEncoder.encode("값", "euc-kr") ex) new Cookie("name", URLEncoder.encode("값","euc-kr"));
= 값 조회 시 : URLDecoder.decode("값", "euc-kr")
● Cookie cookie =....; / String value = URLDecoder.decode(cookie.getValue(), "euc-kr");
쿠키 값 변경
Cookie[] cookies = request.getCookies();
if(cookies !=null && cookies.length > 0) {
for(int i = 0; i<cookies.length; i++) {
if(cookies[i].getName().equals("name")){
Cookie cookie = new Cookie(name, value);
response.addCookie(cookie);
}
}
}
쿠키의 도메인과 경로
도메인 지정 시, 해당 도메인에 쿠키 전달
- Cookie.setDomain()으로 쿠키 설정
- 도메인 형식
- madvirus.net - 점으로 시작하는 경우 관련 도메인에 모두 쿠키를 전송합니다.
- www.madvirus.net - 특정 도메인에 대해서만 쿠키를 전송합니다. - 웹 브라우저는 도메인이 벗어난 쿠키는 저장하지 않습니다.
- 쿠키 도메인에 따라 쿠키가 전달됩니다.
쿠키의 경로 / 유효 시간
- 경로 설정 시 해당 경로를 기준으로 쿠키를 전달해줍니다.
- 경로 미 설정 시, 요청 URL의 경로에 대해서만 쿠키 전달
- 경로 설정시, 설정한 경로 및 그 하위 경로에 대해서 쿠키 전달
- Cookie.setPath()로 경로 설정 - 유효시간
-유효 시간 미 지정 시, 웹 브라우저 닫을 때 쿠키도 함께 삭제
-Cookie.setMaxAge()로 쿠키 유효 시간을 설정합니다.
= 유효 시간이 지나지 않을 경우 웹 브라우저를 닫더라도 쿠키가 삭제되지 않고, 이후 웹 브라우저를 열었을 때 해당 쿠키가 전송됩니다.
= 유효 시간 : 초 단위로 설정
'JSP' 카테고리의 다른 글
JSP <jsp:useBean> (0) | 2022.07.14 |
---|---|
JSP javabeans (0) | 2022.07.14 |
JSP 예외처리 (0) | 2022.07.13 |
JSP HTML FORM (0) | 2022.07.11 |
JSP request (0) | 2022.07.11 |