쿠키는 내장 객체가 아님. http 패키지에 속해있음.
자주 사용하는 것을 만들어놓은 레퍼런스 객체 -> 내장 객체임.. 그러나 쿠키는 내장 객체가 아님.
쿠키에 한글은 저장이 불가능하고 영어나 특수문자 등으로 저장한다.
response.addCookie();
Cookie cookie[] = request.getCookies();
아래 메소드들은 쿠키에 속해있는 메소드들!!
setMaxAge(0) 은 삭제 addCokie를 하기 전에 설정해주어야 한다.
setMaxAge(-1) 은 브라우저를 닫을 때까지.. 이게 기본값.
괄호안의 값은 초단위로 들어가게 됨!!
setValue(Cookie c)
setPath(String path) 쿠키가 유효한 디렉토리를 설정 가능..
response.addCookie(new Cookie("ID", "eu81273"));
위와 같이 사용하게 되는데, 실제 HTML 헤더상에는
Set-Cookie: ID=eu81273
이런 식으로 기록되어 전달되게 된다.
이제 쿠키값을 다시 가져오려면,
Cookie cookies[] = request.getCookies();
cookies[0].getName();
cookies[0].getValue();
여러 도메인에서 활용하기 위해서는
setDomain(".korea.com");
이런 식으로 할 수 있다.
삭제할 때는 Cookie cookie = new Cookie("지울 이름", "값은 아무거나");
를 만들어서 response.add(cookie) 로 다시 저장함으로써 지운다.
그러나 setPath 등의 파라메터까지 동일해야 같은 쿠키로 인식하므로 이 점을 주의해야 한다.
자주 사용하는 것을 만들어놓은 레퍼런스 객체 -> 내장 객체임.. 그러나 쿠키는 내장 객체가 아님.
쿠키에 한글은 저장이 불가능하고 영어나 특수문자 등으로 저장한다.
response.addCookie();
Cookie cookie[] = request.getCookies();
아래 메소드들은 쿠키에 속해있는 메소드들!!
setMaxAge(0) 은 삭제 addCokie를 하기 전에 설정해주어야 한다.
setMaxAge(-1) 은 브라우저를 닫을 때까지.. 이게 기본값.
괄호안의 값은 초단위로 들어가게 됨!!
setValue(Cookie c)
setPath(String path) 쿠키가 유효한 디렉토리를 설정 가능..
response.addCookie(new Cookie("ID", "eu81273"));
위와 같이 사용하게 되는데, 실제 HTML 헤더상에는
Set-Cookie: ID=eu81273
이런 식으로 기록되어 전달되게 된다.
이제 쿠키값을 다시 가져오려면,
Cookie cookies[] = request.getCookies();
cookies[0].getName();
cookies[0].getValue();
여러 도메인에서 활용하기 위해서는
setDomain(".korea.com");
이런 식으로 할 수 있다.
삭제할 때는 Cookie cookie = new Cookie("지울 이름", "값은 아무거나");
를 만들어서 response.add(cookie) 로 다시 저장함으로써 지운다.
그러나 setPath 등의 파라메터까지 동일해야 같은 쿠키로 인식하므로 이 점을 주의해야 한다.
<%@ 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> <%! public Cookie mySearchCookie(Cookie [] cookies, String searchKey) { Cookie cookie = null; for(Cookie c : cookies) { if(c.getName().equals(searchKey)) { cookie = c; break; } } return cookie; } %> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>쿠키검색</title> <style></style> <script type="text/javascript"> function cookie_add() { if(document.cookie_add_form.id_.value.length == 0) { window.alert('값을 입력해주세요!'); document.cookie_add_form.id_.focus(); } else if(document.cookie_add_form.value_.value.length == 0) { window.alert('값을 입력해주세요!'); document.cookie_add_form.value_.focus(); } else { return true; } return false; } function cookie_search() { if(document.cookie_search_form.searchkey.value.length == 0) { window.alert('값을 입력해주세요!'); document.cookie_add_form.searchkey.focus(); } else { return true; } return false; } </script> </head> <body> <form name="cookie_add_form" method="post" action="cookie_search.jsp" OnSubmit="return cookie_add()"> ID<input type="text" name="id_" maxlength="10">___VALUE<input type="text" name="value_" maxlength="10">___<input type="submit" value="쿠키생성"> </form> <% if(request.getParameter("id_") != null && request.getParameter("value_") != null ) { Cookie cookie = new Cookie(request.getParameter("id_").trim(), request.getParameter("value_").trim()); response.addCookie(cookie); out.write("총 " + request.getCookies().length + "개의 쿠키가 추가되었습니다."); } %> <br> <br> <form name="cookie_search_form" method="post" action="cookie_search.jsp" OnSubmit="return cookie_search()"> ID<input type="text" name="searchkey" maxlength="10">___<input type="submit" value="쿠키검색"> </form> <% if( request.getParameter("searchkey") != null ) { Cookie cookie = mySearchCookie(request.getCookies(), request.getParameter("searchkey").trim()); if( cookie != null ) { out.write("결과 : " + cookie.getValue()); } else { out.write("결과 :해당 검색어에 대한 결과가 없습니다."); } } %> <br> <br> <br> <form name="cookie_reset_form" method="post" action="cookie_search.jsp"><input type="hidden" name="cookie_reset" value="cookie_reset"><input type="submit" value="쿠키리셋"></form> <br> <% if(request.getParameter("cookie_reset") != null) { for(Cookie cookie : request.getCookies()) { cookie.setMaxAge(0); response.addCookie(cookie); } out.write("쿠키가 리셋되었습니다."); } %> </body> </html>