728x90
반응형
#Cookie(쿠키) [생성, 추가, 삭제] 하는 방법
#쿠키
-웹 브라우저가 보관하는 데이터이다.
-웹 브라우저에서 서버로 어떤 데이터를 요청하고 서버로부터 응답을 받고 나면 관계가 종료된다.
종료된 상태에서 어떤 정보를 지속적으로 유지하기 위해서 쿠키라는 방식을 사용한다.
-쿠키는 클라이언트가 접속을 하면 서버 쪽에서 생성하여 해당 클라이언트에게 보내어 로컬 PC에 저장을 하는 방식이다.
-저장할 수 있는 데이터가 제한적이다.
-e.g.) 로그인시 아이디 값만 쿠키에 저장(비밀번호는 보안이 중요하므로 세션에서 관리)
-점점 사라지는 추세(클라이언트->서버에서 처리)
#도메인이나 path를 생략하면 그 쿠키를 생성한 JSP,경로,도메인을 기본값으로 가진다.
#쿠키는 응답헤더를 통해서 넘어간다(flush후에 쿠키를 추가하면 안된다.)
#쿠키 관련 메서드
메서드 | 리턴 타입 | 설명 |
getName() | String | 쿠키 이름을 구한다. |
getValue() | String | 쿠키 값을 구한다. |
setValue(String value) | void | 쿠키 값을 지정한다. |
setDomain(String pattern) | void | 이 쿠키가 전송될 서버의 도메인을 지정한다. |
getDomain() | String | 쿠키의 도메인을 구한다. |
setPath(String uri) | void | 쿠키를 전송할 경로를 지정한다. |
getPath() | String | 쿠키의 전송 경로를 구한다. |
setMaxAge(int expiry) | void | 쿠키의 요효시간을 초 단위로 지정한다. 음수를 입력할 경우 웹 브라우저를 닫을 떄 쿠키가 함께 삭제된다. |
getMaxAge() | int | 쿠키의 유효시간을 구한다. |
예제1)
1. 쿠키 설정
2 .쿠키 확인(브라우저에서 F12 -> Application)
-쿠키가 저장되어 있는 것을 볼 수 있다.
3. 쿠키 삭제
-Name과 Value가 삭제되었다.
-브라우저 창의 정보는 F5(새로고침을 하면 갱신된다.)
4. 쿠키 재확인
-완전히 삭제되었다.
#소스코드
1.cookieSet.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1>쿠키 설정 페이지</h1>
<%
request.setCharacterEncoding("utf-8");
// 쿠키 지정 name, value
Cookie cookie = new Cookie("abc", "123");
// 쿠키의 유효시간 설정
cookie.setMaxAge(60*60);
// 쿠키 추가
response.addCookie(cookie);
%>
<br><br>
<a href="cookieGet.jsp">쿠키값 확인창으로 이동</a>
</body>
</html>
2.cookieGet.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1>쿠키 확인 페이지</h1>
<%
request.setCharacterEncoding("utf-8");
// 쿠키 정보를 얻기
Cookie[] cookies = request.getCookies();
// 쿠키에 값이 있다면
for(int i = 0; i<cookies.length; i++){
String name = cookies[i].getName(); // 쿠키 이름
String value = cookies[i].getValue(); // 쿠키 값
if(name.equals("abc")){
out.println("cokies[" + i + "] name : " + name);
out.println("<br/>");
out.println("cokies[" + i + "] value : " + value);
}
}
%>
<br><br>
<a href="cookieDel.jsp">쿠키값 삭제 페이지로 이동</a>
</body>
</html>
3.cookie.Del.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1>쿠키 삭제 페이지</h1>
<%
request.setCharacterEncoding("utf-8");
Cookie[] cookies = request.getCookies();
for(int i = 0; i<cookies.length; i++){
String name = cookies[i].getName();
String value = cookies[i].getValue();
if(name.equals("abc")){
out.println("cokies[" + i + "] name : " + name);
out.println("<br/>");
out.println("cokies[" + i + "] value : " + value);
// 유효시간을 0초 설정 삭제하는 효과
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
out.println("cokies[" + i + "] name : " + name);
out.println("<br/>");
out.println("cokies[" + i + "] value : " + value);
}
}
%>
<br><br>
<a href="cookieCheck.jsp">쿠키값 확인 페이지로 이동</a>
</body>
</html>
4.cookieCheck.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1>쿠키 재확인 페이지</h1>
<%
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(int i=0; i<cookies.length; i++){
out.println(cookies[i].getName());
out.println(cookies[i].getValue());
}
}
%>
</body>
</html>
728x90
반응형
'IT > JSP' 카테고리의 다른 글
[JSP] - 29. 서블릿(Servlet) 이란 (0) | 2020.07.28 |
---|---|
[JSP] - 28. Session(세션) 사용 방법(쿠키vs세션 차이점) (0) | 2020.07.28 |
[JSP] - 26. 자바 빈(JavaBeans), <jsp:useBean> 액션 태그 사용법 (0) | 2020.07.27 |
[JSP] - 25. <jsp:forward> 액션 태그 사용법 (0) | 2020.07.25 |
[JSP] - 24. include 디렉티브 사용법 (0) | 2020.07.25 |
댓글