쿠키는 내장 객체가 아님. 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>