IT/Programming / / 2023. 4. 19. 10:17

JSP 쿠키(Cookie)

반응형

1. Cookie

1) 쿠키의 개요

- HTTP 프로토콜은 웹 브라우저(클라이언트) 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다.

- 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법이다.

- 정보를 웹 브라우저에 저장한다.

2) 쿠키의 사용

- 이름, 값, 유효기간, 도메인, 경로 등으로 이루어진다.

- 쿠키의 이름은 알파벳과 숫자로 이루어진다.

쿠키 값은 공백, 괄호, 등호, 콤마, 콜론, 세미콜론을 포함하려면 인코딩이 필요하다.

- 쿠키 생성

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

- 쿠키를 response객체에 추가

response.addCookie(cookie);

- request객체에 실려온 쿠키를 읽어 올 때

Cookie[] cookies = request.getCookies();

 

- 쿠키를 작성해서 사용하는 순서

1) 먼저 쿠키를 생성한다.

2) 쿠키에 필요한 설정을 한다. 쿠키의 유효시간, 쿠키에 대한 설명 등을 적용하고, 도메인, 패스, 보안 등을 한다.

3) 웹 브라우저에 생성된 쿠키를 전송한다.

 

- 웹 브라우저에 저장된 쿠키를 사용하는 절차

1) 웹 브라우저의 요청에 쿠키를 얻어온다.

2) 쿠키는 이름, 값의 쌍으로 된 배열 형태로 리턴된다. 리턴된 쿠키의 배열에서 쿠키 이름을 가져온다

3) 쿠키 이름을 통해서 쿠키에 설정된 값을 추출한다.

 

 

예제 1. Cookie 사용

Dynamic Web Project : 12-Cookie_Session

JSP File : WebContent/makeCookie.jsp

WebContent/useCookie.jsp

 

<실행 결과>

 

30초가 지난 후

쿠키 시간 만료 된 후 페이지 모습

 


 

1. 12-Cookie_Session/WebContent/makeCookie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page info ="copyright by MIS" %>
<% request.setCharacterEncoding("utf-8"); %>
<%
String cookieName="id";
Cookie cookie = new Cookie(cookieName, "hongkd");
cookie.setMaxAge(30);
response.addCookie(cookie);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>쿠키를 생성하는 페이지</h2>
<p>"<%=cookieName %>" 쿠키가 생성되었습니다.</p>
<form action="useCookie.jsp" method="post">
	<input type="submit" value="생성된 쿠키 확인">
</form>
</body>
</html>
 

 

2. 12-Cookie_Session/WebContent/useCookie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page info ="copyright by MIS" %>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>웹 브라우저에 저장된 쿠키를 가져오는 페이지</h2>
<%
Cookie[] cookies = request.getCookies();
if(cookies != null){
	for(int i = 0 ; i < cookies.length ; i++){
		if(cookies[i].getName().equals("id")){
			%>
			쿠키의 이름은 "<%=cookies[i].getName() %>"이고
			쿠키의 값은 "<%=cookies[i].getValue() %>"입니다.
			<%
			
		}
	}
}
%>
</body>
</html>
 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유