FireDrago

[JSP] Cookie 본문

프로그래밍/템플릿 엔진(thymeleaf, jsp)

[JSP] Cookie

화이용 2023. 6. 20. 15:55

쿠키

- 클라이언트와 웹 서버간의 상태를 지속적으로 유지하기 위해 정보를 클라이언트에 저장한다.

- 쿠키는 웹서버에서 생산하여 response 데이터에 함께 저장되어 전송된다. 

쿠키와 세션

 

쿠키는 Session과 다르게 클라이언트에 데이터를 저장한다. 클라이언트가 자바를 사용할 수 없으므로 

객체가 아닌 텍스트형식으로 데이터를 저장한다. 

쿠키의 생성과 삭제

 

- form 데이터로부터 전달받은 id와 pw 가 관리자라면 cookie에 저장한다.

<body>
<%
	String user_id = request.getParameter("id");
	String user_pw = request.getParameter("password");
	
	if(user_id.equals("admin") && user_pw.equals("1234")) {
		Cookie cookie_id = new Cookie("userID", user_id);	<!--객체생성 (문자열,문자열)-->
		Cookie cookie_pw = new Cookie("userPW", user_pw);	
		response.addCookie(cookie_id);				<!--response에 쿠키 추가 -->
		response.addCookie(cookie_pw);				
		out.println("쿠키 생성이 성공했습니다. <br>");
		out.println(user_id+"님 환영합니다.");
		response.sendRedirect("cookie02.jsp");
	} else {
		out.println("쿠키 생성이 실패했습니다.");
	}
%>
</body>

저장된 쿠키를 가져올때는 request.getCookies( ) 를 이용하여 모든 쿠키를 배열로 가져온다

 

<body>	
<%
	Cookie[] cookies = request.getCookies();	<!-- 배열로 모든 쿠키 가져오기 -->

	for (int i=0; i<cookies.length; i++) {	<!-- for문으로 배열 하나씩  -->
		out.println("설정된 쿠키의 속성 이름 ["+i+"] : "
		+cookies[i].getName()+"<br>");	<!-- getName 쿠키 키  -->
		out.println("설정된 쿠키의 속성 값 ["+i+"] : "
				+cookies[i].getValue()+"<br>"); <!-- getName 쿠키 값  -->
		out.print("----------------------------<br>");
	}

%>
	<a href="cookie01.jsp">메인으로</a>
</body>