[JSP] Cookie

Whatever·2022년 1월 19일
0

JSP

목록 보기
20/30

쿠키

1. 쿠키를 사용하려면?

  • 세션과 마찬가지로 클라이언트(크롬)와 웹 서버(톰캣) 간의 상태를 지속적으로 유지하는 방법
  • 상태 정보(name, value)를 클라이언트(크롬의 쿠키저장소)에 저장
  • 쿠키 생성은 서버에서 함. 그 이후에 웹 서버로 전송되는 요청에는 쿠키 정보가 포함됨.
  • 예) 아이디 저장하기
    처음 방문한 사용자가 로그인 인증 -> 아이디와 비밀번호를 기록한 쿠키가 생성 -> 그 이후에 사용자가 그 웹 사이트에 접속하면 별도의 절차를 거치지 않고 쉽게 접속 가능

2. 쿠키 생성은?

  • Cookie cookie = new Cookie("memberId"(쿠키명), "admin"(쿠키에 저장할 객체));
  • Response.addCookie(cookie);
  • 쿠키는 서버에서 만든다.

3. 쿠키 삭제는?

  • cookie.setMaxAge(0);
  • response.addCookie(cookie);

4. 쿠키 생성?

  • Cookie cookie = new Cookie(String name, String value);

5. 쿠키 정보 받기

  • Request.getCookie() 메소드를 사용
  • 쿠키 객체를 얻어온 후 getName() 메소드를 통해 쿠키 이름을 가져옴
  • getValue() 메소드를 통해 해당 이름의 쿠키의 값을 얻음

6. 쿠키 삭제

  • 쿠키를 더 유지할 필요가 없다면 유효 기간을 만료하기
  • setMaxAge(0)

[쿠키 예제]

데이터 전송

cookie01.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Cookie</title>
</head>
<body>
	<form method="post" action="cookie01_process.jsp">
		<p>아 이 디 : <input type="text" name="id" /></p>
		<p>비밀번호 : <input type="text" name="passwd" /></p>
		<p><input type="submit" value="전송" /></p>
	</form>
</body>
</html>

쿠키객체 생성, 쿠키에 데이터 저장

cookie01_process.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Cookie</title>
</head>
<body>
<%
	//?id=admin&passwd=1234
	String user_id = request.getParameter("id");
	String user_pw = request.getParameter("passwd");
	
	if(user_id.equals("admin")&&user_pw.equals("1234")){
		//Cookie 객체 생성
		Cookie cookie_id = new Cookie("userID", user_id);
		Cookie cookie_pw = new Cookie("userPW", user_pw);
		response.addCookie(cookie_id);
		response.addCookie(cookie_pw);
		
		out.print("쿠키 생성 성공!");
		out.print(user_id + "님 환영합니다.");
	}
%>
</body>
</html>

쿠키에 저장된 정보 얻어오기

cookie02.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	//쿠키 정보를 얻어오기
	Cookie[] cookies = request.getCookies();

	for(int i=0; i<cookies.length;i++){
		out.print("설정된 쿠키의 속성명[" + i + "] : "+ cookies[i].getName() + "<br>");
		out.print("설정된 쿠키의 속성값[" + i + "] : "+ cookies[i].getValue()+ "<br>");
		out.print("================================<br />");
	}
%>

쿠키 삭제하기

cookie03.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Cookie</title>
</head>
<body>
<%
	Cookie[] cookies = request.getCookies();

	for(int i =0; i< cookies.length; i++){
		//쿠키 삭제 : 유효 기간을 0으로 설정
		cookies[i].setMaxAge(0);
		response.addCookie(cookies[i]);
	}
	response.sendRedirect("cookie02.jsp");
%>
</body>
</html>

0개의 댓글