cookie
1. 세션 관리(Session Management)
- 서버가 알아야 할 정보들을 저장
ex) 로그인, 접속 시간, 장바구니 등
2. 개인화(Personalizaation)
- 사용자마다 다르게 적절한 페이지 제공
ex) 웹 환경설정
3. 트래킹(Tracking)
- 사용자의 행동과 패턴 분석 & 기록
ex) 구매기록, 시청기록
ex) 네이버 쿠키
Cookie에서 꼭 알아야할 4가지
1. Name(이름) : 구분하기 위해서
2. Value(값) : 파일에 저장된 텍스트 데이터
3. Domain(쿠키가 허용된 주소 = 생성된 주소) : 생성된 서버와 사용할 서버가 같아야 함
4. Expires / Max-Age (유효기간) : 날짜가 되면 자동 삭제 -> 대표적 기능 (로그인 유지하기)
예제)
쿠키 만드는 jsp)
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
// 1. 쿠키 만드는 방법
// new Cookie("name", "value");
// Cookie는 순수 text만 저장가능
// 특수문자(공백, !, ?..) 사용불가
// 인코딩(URL인코딩) => 띄어쓰기를 해도 오류 X
String enc = URLEncoder.encode("첫 번째 쿠키", "UTF-8");
Cookie cookie = new Cookie("first", enc);
// 아래코드는 value값에 공백이 존재하기에 오류가 남.
// Cookie cookie = new Cookie("first", "첫 번째 쿠키");
// 2. 응답에 쿠키 추가
response.addCookie(cookie);
%>
<a href="Ex02SelectCookie.jsp">쿠키 확인하기</a>
</body>
</html>
쿠키 조회하는 jsp)
<%@page import="java.net.URLDecoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
// 1. 쿠키 조회하기
// 쿠키를 한 번에 다 꺼내야함 => 하나씩 조회는 불가능
Cookie[] cookies = request.getCookies();
/*
for(int i = 0; i < cookies.length; i++) {
Cookie c = cookies[i];
}
*/
// forEach문
// for i in list : => list에서 하나씩 빼서 i에 담겠다.
// for(변수 : 배열)
for(Cookie c : cookies) {
// 1. 쿠키 이름 가져오기
String name = c.getName();
// 2. 쿠키 값 가져오기
String value = c.getValue();
// <h4>이름 : 쿠키값</h4>
if(name.equals("first")) {
// 디코딩
String dec = URLDecoder.decode(value, "UTF-8");
out.print("<h4>"+name+" : "+dec+"</h4>");
}
}
%>
<!-- servlet에서 URLMapping 해줘야함. -->
<a href="ex03">쿠키 수정/삭제</a>
</body>
</html>
쿠키 수정하는 java)
package Ex0418;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ex03")
public class Ex03UpdateCookie extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 쿠키 파일 수정 == 똑같은 이름으로 쿠키를 만들어서 응답
Cookie cookie = new Cookie("first", "firstCookie");
// 쿠키의 유효기간 설정
// .setMaxAge(유효기간(단위 : 초));
cookie.setMaxAge(60*60*24*365);
// 쿠키의 삭제
// 유효기간을 0초로 수정시켜주기만 하면 된다.
cookie.setMaxAge(0);
// 2. 응답에 추가
response.addCookie(cookie);
// 쿠키 확인페이지로 이동
response.sendRedirect("Ex02SelectCookie.jsp");
}
}
'Web > JSP_Servlet' 카테고리의 다른 글
Session (1) | 2023.04.19 |
---|---|
객체실습_html에서 값 입력 후 jsp에서 출력 (1) | 2023.04.19 |
forward & redirect (0) | 2023.04.18 |
JSP 객체_html코드 안에서 Java코드 사용 (0) | 2023.04.18 |
MVC(Eclipse)+ORACLE DB 연결(환경설정) (0) | 2023.04.11 |
댓글