웹 브라우저에 저장되는 작은 데이터 조각
서버가 클라이언트에게 전송하는 정보 저장 → 사용자가 다음에 웹사이트를 방문할 때 활용할 수 있도록 줌.
ex) 로그인 상태를 유지하거나 사용자 환경 설정을 기억하는 데 사용
| 메서드 | 설명 |
|---|---|
| setMaxAge(int expiry) | 쿠키를 유지하기 위한 시간 설정 |
| getCookies() | 현재 요청에 포함된 모든 쿠키 반환 |
| getName() | 쿠키 이름 반환 |
| getValue() | 쿠키 값 반환 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// 쿠키 생성
String userName = request.getParameter("username");
Cookie userCookie = new Cookie("username", userName);
userCookie.setMaxAge(60 * 60); // 1시간 동안 유효
response.addCookie(userCookie);
%>
<!DOCTYPE html>
<html>
<head>
<title>Cookie 예제</title>
</head>
<body>
<h1>Cookie 설정 완료</h1>
<p>쿠키에 저장된 사용자 이름: <%= userName %></p>
</body>
</html>
사용자가 웹 페이지에 접속하면 서버는 클라이언트의 요청에서 username이라는 매개변수를 읽음 → 읽은 사용자 이름을 기반으로 쿠키 생성, 해당 쿠키를 클라이언트에게 전송 → 사용자가 설정 완료 메시지를 포함한 웹 페이지를 보게 됨
클라이언트와 서버 간의 특정 시간 동안의 상태를 유지하는 방법으로 사용자의 상호작용을 통해 생성된 정보의 집합
서버 측에서 관리, 일반적으로 사용자가 웹 애플리케이션을 사용하는 동안의 상태를 저장하고 사용자 정보를 관리하는 데 사용
ex) 로그인 정보나 장바구니 내용 저장 시 활용
| 메서드 | 설명 |
|---|---|
| getAttribute(String) | 이름에 해당하는 속성 반환 |
| setAttribute(String, Object) | 이름과 값 저장 |
| getId() | 세션 ID 반환 |
| getCreationTime() | 생성 시간 반환 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// 세션 생성 또는 기존 세션 가져오기
HttpSession session = request.getSession();
// 사용자 이름을 세션에 저장
String userName = request.getParameter("username");
session.setAttribute("username", userName);
%>
<!DOCTYPE html>
<html>
<head>
<title>Session 예제</title>
</head>
<body>
<h1>Session 설정 완료</h1>
<p>세션에 저장된 사용자 이름: <%= session.getAttribute("username") %></p>
</body>
</html>
사용자가 웹 페이지에 접속, 서버는 클라이언트의 요청에서 username이라는 매개변수를 읽음 → 이 값을 기반으로 세션에 사용자 이름 저장 & 세션은 서버 측에 저장되므로 클라이언트가 다른 페이지로 이동해도 값 유지 → 세션에 저장된 사용자 이름을 포함한 설정 완료 메시지를 웹 페이지에 표시