[JSP] 쿠키(Cookie) 사용 방법

Yun zzin·2022년 1월 4일
0

JSP

목록 보기
4/6

쿠키(Cookie) 란?

  • 웹 브라우저(클라이언트)가 저장하는 데이터.
  • 웹 브라우저에 저장되므로 보안에 문제가 발생할 수 있다.
  • HTTP 프로토콜은 웹 브라우저에게 요청에 대한 응답을 하고 나면 해당 클라이언트와 연결을 지속하지 않는다.
    이를 지속시키기 위해 쿠키를 사용한다.
  • ex) 장바구니

동작 방식

  1. 웹 브라우저(클라이언트)에서 웹 서버에게 어떤 데이터를 요청
  2. 웹 서버에서 응답 쿠키를 생성해서 웹 브라우저에게 응답
  3. 웹 브라우저는 웹 서버에게 받은 쿠키를 쿠키 저장소에 저장
  4. 웹 브라우저에서 웹 서버에게 쿠키를 헤더에 담아서 어떤 데이터를 요청
    이후 웹 브라우저가 같은 서버에 접속할 때 저장된 쿠키가 요청 정보에 실려감

아이디가 저장되는 간단한 폼을 만들어보자!

쿠키 생성

  1. Main.jsp : 로그인 폼을 만든다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cookie Main</title>
</head>
<body>
<h2>로그인</h2>

<form method="post" action="CoockieBtn.jsp">
<table border="1">
	<tr height="50">
	<td height="80" align="center">아이디</td>
	<td><input type="text" name="id"/></td>
</tr>

<tr height="50">
	<td height="80" align="center">비밀번호</td>
	<td><input type="password" name="pass"/></td>
</tr>
<tr>
	<td height="50" colspan="2" align="center">아이디 저장<input type="checkbox" name="checkbox"></td>
</tr>
<tr>
	<td height="50" colspan="2" align="center"> <input type="submit" value="로그인"></td>
</tr>
</table>
</form>
</body>
</html>
  • 결과

  1. CoockieBtn.jsp : 쿠키를 생성한다. (아이디 저장을 체크한 경우에만 생성)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<%
	request.setCharacterEncoding("UTF-8");
	String id = request.getParameter("id");
	String checkbox = request.getParameter("checkbox");
	if(checkbox!=null){ //체크박스가 클릭되어 있으면
		Cookie cookie = new Cookie("id",id);
		//유효시간 설정
		cookie.setMaxAge(60*10); //10분간 유효
		//사용자에게 쿠키값을 넘겨줌.
		response.addCookie(cookie);
		response.sendRedirect("Main.jsp");
	}else{
		response.sendRedirect("Main.jsp");
	}
%>
</body>
</html>

쿠키 확인하기

  1. Chrome 에서 브라우저를 띄운 후 F12를 누른다.
  2. 애플리케이션 탭 - 쿠키 - http://localhost:포트번호 를 클릭하면 쿠키를 확인할 수 있다.


쿠키 값 가져오기.

  1. Main.jsp : 아이디 저장을 체크하고 로그인 버튼 클릭시 아이디 저장
<%
	request.setCharacterEncoding("UTF-8");
	String id = "";
	//쿠키 배열 생성
	Cookie[] cookies = request.getCookies(); 
	if(cookies !=null){
		for(int i=0;i<cookies.length;i++){ 
			if(cookies[i].getName().equals("id")){ //저장된 쿠키 이름이 "id" >인 경우
				id = cookies[i].getValue(); //쿠키값을 가져옴
				break;
			}
		}
	}	
%>

  1. 테이블에 아이디 value값을 id로 받아옴.
<table border="1">
	<tr height="50">
	<td height="80" align="center">아이디</td>
	<td><input type="text" name="id" value=<%=id %>></td>
</tr>
  • 결과
    아이디/비밀번호 입력 후 아이디 저장을 체크

  • Main.jsp로 돌아오면서 Cookie가 생성되고 폼에 아이디가 저장됨.


쿠키 삭제

  • CoockieBtn.jsp : 유효시간을 0으로 설정
//유효시간 설정
cookie.setMaxAge(0); //0으로 설정해 바로 만료
profile
공부 기록장

0개의 댓글