2022. 12. 5. 23:40ㆍJSP
쿠키 ~ 먹는 쿠키 아닙니다.
cookieSet.jsp
==========
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 만들기</title>
</head>
<body>
<h1>서버에서 쿠키를 생성하는 cookieSet.jsp페이지 입니다.</h1>
<%
System.out.println("서버에서 쿠키를 생성하였으며, 응답하기 위해서 response객체에 추가 하였습니다.");
request.setCharacterEncoding("UTF-8");
//쿠키는 통상 클라이언트가 접속을 하면 서버쪽에서 생성하여 해당 클라이언트에게 보내어 로컬PC에 저장을 하는 방식이다.
//아울러, 쿠키속성(이름,값)을 설정할때는 반드시 한글로 만들어지지 않기 때문에 영문이나 숫자로만 설정을 하도록 하자.
Cookie cookie = new Cookie("abcde","12345");//Cookie클래스에는 그냥기본생성자가 없기 때문에 인자2개가 들어갑니다.
cookie.setMaxAge(60*60); //쿠키의 유효시간을 설정(1시간)
//쿠키속성을 지정을 했다면, 반드시 response객체에 추가를 해줘야 한다.(변경이 있어도 반드시 뚀 재추가)그래야 쿠키가 읽어가는쪽에서 그게 보통 서버쪽이 되겠죠
response.addCookie(cookie);//응답속에 쿠키를 탑재를 해줘야 됩니다.
%>
<br/><br/>
<a href="cookieGet.jsp">쿠키값 확인하는 창으로 이동</a>
</body>
</html>
============================================================================================
cookieGet.jsp
===========
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 속성 읽기</title>
</head>
<body>
<h1>쿠키의 속성들의 내용을 읽는 cookieGet.jsp페이지 입니다.</h1>
<%
System.out.println("서버에서 쿠키를 생성하였으며, 생성된 쿠키의 값을 출력해봅니다.");
//요청들어오는 쿠키들의 값들을 받고 있다.
Cookie[] cookies = request.getCookies();//수신자역할
for(int i = 0 ; i < cookies.length ; i = i + 1) {
String name = cookies[i].getName(); //쿠키의 이름을 얻는다.
String value = cookies[i].getValue(); //쿠키의 값을 얻는다.
//만약에, 이름이 abcde가 맞다면....출력해라.
if(name.equals("abcde")) {
out.println("cookies[" + i + "] name : " + name);
out.println("<br/>");
out.println("cookies[" + i + "] value : " + value);
}
}
%>
<br/><br/>
<a href="cookieDel.jsp">쿠키 삭제 페이지 이동</a>
</body>
</html>
========================================================
cookieDel.jsp
===========
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 삭제</title>
</head>
<body>
<h1>쿠키의 속성을 삭제하는 cookieDel.jsp페이지 입니다.</h1>
<%
System.out.println("서버에서 쿠키를 삭제하였습니다.");
Cookie[] cookies = request.getCookies();//쿠키배열로 쿠키내용들을 얻어내면 되요
for(int i = 0 ; i < cookies.length ; i = i + 1) {
String name = cookies[i].getName(); //쿠키의 이름을 얻는다.
String value = cookies[i].getValue(); //쿠키의 값을 얻는다.
//만약에, 이름이 abcde가 맞다면....출력해라.
if(name.equals("abcde")) {
out.println("cookies[" + i + "] name : " + name);
out.println("<br/>");
out.println("cookies[" + i + "] value : " + value);
cookies[i].setMaxAge(0); //유효기간을 0초로 설정하면 삭제를 하는 효과와 동일하다.
//위의 코드에서 쿠키의 수정이 있었으므로 다시 response객체에 쿠키를 추가한다.
response.addCookie(cookies[i]);//변경이 되었으니깐 담아야겠죠.응답객체에다 담아야한다.이렇게 담아줘야.변경이되었기 때문이죠?!
//이제 삭제를 했죠.그리고 삭제한 내용을 여기바로 위에다가 담았어요.
}
}
%>
<br/><br/>
<a href="cookieTest.jsp">쿠키 확인 페이지로 이동</a>
</body>
</html>
============================================================================================
cookieTest.jsp
=============
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 확인</title>
</head>
<body>
<h1>쿠키의 속성이 삭제된 것을 확인하는 cookieTest.jsp페이지 입니다.</h1>
<%
System.out.println("삭제된 쿠키의 값을 출력해봅니다.");
//쿠키의 유효시간이 0으로 설정한 쿠키가 리턴될 것이다.
Cookie[] cookies = request.getCookies();
//확인해보니 현재 남아있는 쿠키 이름 : JSESSIONID와 그 값이 나온다 --> 서버 생성
//위의 이름과 값은 그냥 무시하면 된다.(이부분은 항상 출력된다.서버에서 생성이 되었기 때문이다.)
if(cookies != null) {
for(int i = 0 ; i < cookies.length ; i = i + 1) {
out.println("현재 남아있는 쿠키 이름 : " + cookies[i].getName());
out.println("현재 남아있는 쿠키 값 : " + cookies[i].getValue());
}
}
//여기서 반드시 기억을 해야 할 것은, 쿠키를 생성하고 response객체에 탑재를 해주어야 한다.
//아울러 변경이 일어나면 반드시 response객체에 재탑재를 해주어야 한다. 그래야 그 이유는 그렇게 해줘야
//그래야 쿠키값이 일관성 있게 유지가 되는 것이다.
%>
</body>
</html>
=======================================================================================
'JSP' 카테고리의 다른 글
세션 값 확인 (0) | 2022.12.05 |
---|---|
예외 테스트 (0) | 2022.12.05 |
JSP 세션 로그인 (0) | 2022.12.05 |
JSP 시험 점수 입력 (0) | 2022.12.05 |
JSP 로그인 (0) | 2022.12.05 |