웹 처리에 사용되는 어떤 데이터를 클라이언트(호스트가 아니라 프로그램)에 문자열 형식으로 저장하는 방식
Object login = session.getAttribute("login");
String userid = request.getParameter("userid");
String idsave = request.getParameter("idsave");
boolean flag = idsave != null && login != null;
// 쿠키를 idsave에 저장
// Cookie c = new Cookie("idsave" idsave);
// flag 값에 따라서 setMaxAge 주기
Cookie cid = new Cookie("userid", userid);
if(idsave == null && login == null){
cid.setMaxAge(0);
}
else{
cid.setMaxAge(60 * 60 * 24);
response.addCookie(cid);
// response.sendRedirect("loginForm.jsp");
<%
// 전달받은 내용은 request.getCookies()로 가지고 온다
// 이것을 Cookie 타입의 배열에 저장한다
// 요청에 담긴 쿠키의 배열(쿠키는 하나 이상일 수도 있다)
// 내가 원하는 쿠키의 값을 저장할 변수
Cookie[] cookies = request.getCookies();
String value = null;
// 배열을 돌면서 cookies의 i번째를 Cookie c에 담는다
// 첫 방문이면 쿠키가 아예 없다
// 쿠키 배열의 i번째 요소를 꺼내서 이름이 일치하는 쿠키를 찾아서 그 값을 저장한다
for(int i = 0; cookies != null && i < cookies.length; i++){
Cookie c = cookies[i];
// c의 getName()이 저장한 test와 일치한다면
if(c.getName().equals("test")){
// value에 c.getValue()를 담는다
value = c.getValue();
}
}
%>
<h1>쿠키 확인하기</h1>
<hr>
<h2>입력한 쿠키 내용은 [<%=value %>] 입니다</h2><%-- 저장한 쿠키 값을 출력한다 --%>
<h2>입력한 쿠키 내용은 ${ cookie.test.value } 입니다</h2><%-- EL태그로 출력하려면 위 스크립틀릿 없이 출력 가능(출력에 한에서 표현식 안쓰고 가능) --%>
================================================
// 쿠키를 삭제하려면 동일한 이름의 쿠키를 생성하고, 유효시간을 0으로 설정한 이후 클라이언트에게 보낸다
// 쿠키문자열은 인코딩이 제한되기 때문에 띄워쓰기를 포함하지 않고 언더바( _ ) 나 다른기호로 대체한다
Cookie c = new Cookie("test", "아무거나");
c.setMaxAge(0);
response.addCookie(c);
response.sendRedirect("ex01-cookie-check.jsp");
================================================
// 파라미터를 입력받아서
String test = request.getParameter("test");
// Cookie c = new Cookie(String name, String value);
// 새로운 쿠키를 생성
// 쿠키 생성자에 저장한다
Cookie c = new Cookie("test", test);
// 60초 * 60분 * 24시간 * 30일 : 유효기간을 설정
c.setMaxAge(60 * 60 * 24 * 30);
// addCookie에 저장한 객체를 담는다
response.addCookie(c);
// 그리고 ex01-cookie-check로 보낸다
response.sendRedirect("ex01-cookie-check.jsp");
<%
String theme = request.getParameter("theme");// 파라미터가 없을 수도 있다
if(theme != null){
Cookie c = new Cookie("theme", theme);
c.setMaxAge(60 * 60 * 24 * 7);
response.addCookie(c);// 쿠키를 보내고 나면, 이후 클라이언트의 재 방문시 쿠키를 지참하여 가져온다
// 재방문 (새로고침)을 유도해야 쿠키가 곧바로 적용된다(매장-서버 / 손님-클라이언트 / 매장에서 쿠폰을 나눠주고 다시 오라는 거랑 비슷하다)
response.sendRedirect("ex02.jsp");
}
%>