본문 바로가기
JSP

JSP 쿠키

by 요리하다그만둠 2022. 7. 13.

쿠키 사용

  • 쿠키 구성
  • 생성
  • 값 사용
  • 도메인/경로/유효시간
  • 쿠키와 헤더

쿠키(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