JSP
JSP 웹 프로그래밍 - 쿠키 (쿠키의 개요, 생성, 정보, 삭제)
록's
2023. 3. 7. 18:38
728x90
반응형
1. 쿠키의 개요
쿠키(cookie)
- 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
- 쿠키는 세션과 달리 상태 정보를 웹 서버가 아닌 클라이언트에 저장
- 예를 들어 어떤 웹 사이트를 처음 방문한 사용자가 로그인 인증을 하고 나면 아이디와 비밀번호를 기록한 쿠키가 만들어지고 그 다음부터 사용자가 그 웹 사이트에 접속하면 별도의 절차를 거치지 않고 쉽게 접속할 수 있음
- 클라이언트의 일정 폴더에 정보를 저장하기 때문에 웹 서버의 부하를 줄일 수 있다는 것이 장점
- 반면에 웹 브라우저가 접속했던 웹 사이트에 관한 정보와 개인 정보가 기록되기 때문에 보안에 문제가 있음
쿠키의 동작 과정
- 쿠키 생성 단계: 주로 웹 서버 측에서 생성. 생성된 쿠키는 응답 데이터에 함
께 저장되어 웹 브라우저에 전송됨 - 쿠키 저장 단계: 웹 브라우저는 응답 데이터에 포함된 쿠키를 쿠키 저장소에
보관. 쿠키는 종류에 따라 메모리나 파일로 저장됨 - 쿠키 전송 단계: 웹 브라우저는 한 번 저장된 쿠키를 요청이 있을 때마다 웹
서버에 전송. 웹 서버는 웹 브라우저가 전송한 쿠키를 사용하여 필요한 작업
을 수행할 수 있음.
Cookie 클래스의 메소드 종류
쿠키와 세션의 차이
2. 쿠키 생성
쿠키 생성
- Cookie( ) 메소드를 사용
- 쿠키를 생성한 후에는 반드시 response 내장 객체의 addCookie( ) 메소드로 쿠키를 설정해야 함
- 첫 번째 매개변수 name은 쿠키를 식별하기 위한 이름
- 두 번째 매개변수 value는 쿠키 값
쿠키 생성하기
// cookie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cookie</title>
</head>
<body>
<form action="cookie01_process.jsp" method="post">
<p> 아 이 디 : <input type="text" name="id">
<p> 비밀버호 : <input type="text" name="passwd">
<p> <input type="submit" value="전송">
</form>
</body>
</html>
// cookie01_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cookie</title>
</head>
<body>
<%
String user_id = request.getParameter("id");
String user_pw = request.getParameter("passwd");
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.addCookie(cookie_pw);
out.println("쿠키 생성이 성공했습니다.<br>");
out.println(user_id + "님 환영합니다.");
} else {
out.println("쿠키 생성이 실패했습니다.");
}
%>
</body>
3. 쿠키 정보
쿠키 객체 얻기
- 클라이언트에 저장된 모든 쿠키 객체를 가져오려면 request 내장 객체의 getCookies( ) 메소드를 사용
- 쿠키 객체가 여러 개일 때는 배열 형태로 가져옴
쿠키 객체의 정보 얻기
- 쿠키 객체를 얻어왔다면 이 쿠키 객체에 저장된 쿠키 이름과 값을 가져오기 위해 getName( ), getValue( ) 메소드를 사용
쿠키 객체에 저장된 모든 쿠키 값 가져와 출력하기
// cookie02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cookie</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
out.println("현재 설정된 쿠키의 개수 => " + cookies.length + "<br>");
out.println("======================================<br>");
for(int i=0; i<cookies.length; i++){
out.println("설정된 쿠키의 속성 이름 [ " + i + "] : " + cookies[i].getName() + "<br>" );
out.println("설정된 쿠키의 속성 값 [ " + i + "] : " + cookies[i].getValue() + "<br>" );
out.println("----------------------------------------<br>");
}
%>
</body>
</html>
- 출력 -
4. 쿠키 삭제
쿠키 삭제
- 쿠키의 유효 기간을 결정하는 setMaxAge( ) 메소드에 유효 기간을 0으로 설정하여 쿠키를 삭제할 수 있음
- setMaxAge( ) 메소드의 형식
쿠키 객체에 저장된 모든 쿠키 삭제하기
728x90
반응형