🍪 쿠키
- 웹 브라우저에서 서버로 데이터를 요청하면, 서브측에서는 알맞은 로직을 수행한 후 데이터를 웹 브라우저에 응답한다.
- Http 프로토콜은 응답 후에 웹 브라우저와의 관계를 종료한다.
- 연결이 끊겼을 때, 어떤 정보를 지속적으로 유지하기 위한 수단으로 쿠키라는 방식을 사용한다.
- 쿠키는 서버에서 생성하여, 서버가 아닌 클라이언트측(LOCAL)에 정보를 저장한다.
- 서버에서 요청할 때마다 쿠키의 속성값을 참조 또는 변경할 수 있다.
- 쿠키는 개단 4kb로 용량이 제한적이며, 300개까지(1.2MB) 데이터 정보를 가질 수 있다.
🍪 쿠키와 관련된 메서드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 쿠키 = 서버와 클라이언트의 지속적인 관계를 유지하기 위한 수단
// 서버에서 생성해서 -> 클라이언트에 저장
// 1. 쿠키생성
Cookie c = new Cookie("aaa", "홍길동"); // 앞은 키, 뒤는 값
// 2. 쿠키에 속성 설정
c.setMaxAge(30); // 수명이 30초
// 3. response에 담는다
response.addCookie(c);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>쿠키만들기</h3>
쿠키생성완료!
<a href="cookie_get.jsp"></a>
</body>
</html>
// 쿠키 확인하는 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 쿠키 사용하기
// 쿠키는 클라이언트에서 자동으로 전송돼서 request객체에 담김
Cookie[] arr = request.getCookies();
// 쿠키가 null이 아닐 때 쿠키를 찾는 작업
if(arr != null) {
for(Cookie c : arr) {
out.println(c.getName()); // 쿠키명(키값)
out.println(c.getValue()); // 쿠키값(값)
out.println("<br>");
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>쿠키확인하기</h3>
</body>
</html>
Cookie_set파일
1. 쿠키를 생성하고, 속성을 설정한다(aaa. "홍길동"), 수명 30초
2. response에 담는다.
3. cookie_get으로 보내준다.
Cookie_get 파일
1. 받은 Cookie를 배열로 받는다.
2. 배열에 아무것도 없다면 null이기 때문에 for문으로 출력해준다.
if(arr != null)
로그인시 쿠키를 활용해 로그인해보기
- 아이디 및 비밀번호는 aaa, 1234로 지정
- 로그인에 성공했을 시, 쿠키를 저장하는데, 아이디 기억하기 체크를 하고 로그인을 성공하면 쿠키를 하나 더 생성
- 본문에서 쿠키 받아서 입력 / value에 넣어준다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Cookie[] arr2 = request.getCookies();
String rememberMe = "";
if(arr2 != null) {
for(Cookie c2 : arr2) {
if(c2.getName().equals("rememberMe")) {
rememberMe = c2.getValue();
}
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>쿠키를 통한 로그인</h3>
<!--
1. 아이디기억하기를 체크하고, 로그인에 성공하면, 아이디기억하기 쿠키(아이디)를 하나 생성
2. 이 쿠키는 사용하는 곳이 바로 여기임!
3. 아이디 기억하기 쿠키를 찾아서 있다면, input의 값을 아이디로 채워넣어주면 됨
-->
<form action="ex01_result.jsp" method="post">
아이디: <input type="text" name="id" value="<%=rememberMe%>"> <br>
비밀번호: <input type="password" name="pw"> <br>
아이디 기억하기: <input type="checkbox" name="check"><br>
<input type="submit" value="로그인">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 처리하는 영역
// 아이디가 aaa123이고, 비밀번호 1234라면 로그인 성공 가정
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String check = request.getParameter("check");
if(id.equals("aaa123") && pw.equals("1234")) { // 로그인 성공
// 로그인 성공 시에 아이디를 저장하는 쿠키
Cookie c = new Cookie("user_id", id); // user_id는 사용할 쿠키의 명칭
c.setMaxAge(1800); // 30분
response.addCookie(c);
if(check != null) { // 아이디 기억하기 쿠키 생성
Cookie c2 = new Cookie("rememberMe", id);
c2.setMaxAge(30); // 30초
response.addCookie(c2);
}
response.sendRedirect("ex01_ok.jsp");
} else {
response.sendRedirect("ex01.jsp"); // 다시 로그인페이지로
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
위 방법을 이용하면, 확인을 하는 처리로직에서 데이터베이스에서 해당 아이디와 비밀번호가 조회가 된다면
쿠키를 생성하는 방식으로 응용할 수 있다.
728x90
'Programming > JSP' 카테고리의 다른 글
[JSP] 예외 페이지 (0) | 2024.05.06 |
---|---|
[JSP] 쿠키와 세션 - 세션 (0) | 2024.05.06 |
[JSP] 내장 객체 (0) | 2024.05.06 |
[JSP] GET과 POST (0) | 2024.05.06 |
[JSP] 태그 (0) | 2024.05.06 |