ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP- 쿠키(Cookie)
    기타/Servlet 2020. 12. 9. 13:47

    정의

    사용자의 웹 브라우저에 간단한 정보를 저장하여 나중에 가져올 수 있도로 HTTP프로토콜에서 제송하고 있는 표준 메커니즘

    클라이언트의 하드디스크에서 관리되는 정보라 보안에 취약하다

    생존 기간이 안에는 브라우저가 종료되어도 유지된다

     

    제약사항

    문자열 데이터만 가능하다

    4kb이하의 공간을 차지해야한다

    여러개의 쿠키 설정이 가능하다

    도메인당 20개까지 저장 할 수 있다

    총 300개 까지 저장가능

    단, 저장 한도를 넘으면 최근 사용되지 않은 쿠키부터 자동 삭제된다.

     

    사용방법

    <%
    	//쿠키만들기
    	Cookie cookie1 = new Cookie("id", "wer");
    	Cookie cookie2 = new Cookie("name", "홍길동");
    	
    	//쿠키의 생명
    	cookie1.setMaxAge(60*60);
    	cookie2.setMaxAge(60*60*2);
    	
    	//쿠키를 클라이언트에 저장
    	response.addCookie(cookie1);
    	response.addCookie(cookie2);
    %>
    
    <a href = "cookie_get.jsp">쿠키확인</a>

    Cookie cookie = new Cookie(name, value);

    쿠키를 사용하기 위해 쿠키 객체를 생성한다

     

    cookie1.setMaxAge(60*60);

    쿠키 생명 시간은 초 단위로 계산된다

    60초 x 60은 1시간

     

    생성후 response.addCookie(cookie); 를 이용해 생성쿠키를 클라이언트로 전송

     

    <%
    	Cookie[] cookies = request.getCookies();
    	for(Cookie x:cookies){
    		String name = x.getName();
    		String value = x.getValue();
    		out.println(x+ "==" +value +"<br/>");
    	}
    %>
    <a href="cookie_delete.jsp">쿠키제거</a>

    Cookie[] cookies = request.getCookies();

    접속한 클라이언트에 저장된 쿠키정보 가져오기

     

    for문을 이용하여 배열 안의 모든 쿠키정보를 가져온다.

     

    <%
    	Cookie[] cookies = request.getCookies();
    	for(Cookie x:cookies){
    		if(x.getName().equals("id")){
    			out.println("쿠키이름: " + x.getName() + "<br/>" );
    			x.setMaxAge(0);
    			response.addCookie(x);
    		}
    	}
    %>

    쿠키를 제거할 때에도 

    Cookie[] cookies = request.getCookies();

    이용해 쿠키의 정보를 불러온다.

     

    for문을 이용해서 모든 쿠키를 불러낸 뒤

    if문으로 특정 쿠키의 생존시간을 0초로 만들었다.

    그리고 변경된 내용을 다시 클라이언트 쪽에 저장해준다.

    수정사항을 저장하지 않으면 쿠키 삭제가 반영되지 않는다.

    '기타 > Servlet' 카테고리의 다른 글

    JSP - 예외처리 (Exception)  (0) 2020.12.10
    JSP- 세션(Sesssion)  (0) 2020.12.09
    JSP - 액션태그  (0) 2020.12.09
    JSP - 리퀘스트 (Request) 기본객체  (0) 2020.12.09
    지시자  (0) 2020.12.08

    댓글

Designed by Tistory.