Работа с Cookies в Java
Last updated: 9 мая 2025 г.Cookies
это данные, которые генерируются сервером и хранятся в браузере клиента.
Браузер клиента возвращает эти данные обратно на сервер когда клиент делает запрос из того же веб-ресурса.
Как пример, можно привести автоматический ввод логина и пароля когда пользователь заходит на страницу для входа в учетную запись, на которой он уже вводил свои логин и пароль. Думаю всем это должно быть знакомо.
Раскроем этот пример получше:
- Когда клиент вводит логин и пароль на каком-то веб-ресурсе они отправляются на сервер и там сохраняются.
- Сервер генерирует некий номер, который будет принадлежать только конкретно этому клиенту и отправляет сгенерированный номер клиенту, который сохраняется у него в браузере (в куках) и когда клиент повторно заходит на этот веб-ресурс браузер отправляет сохраненные куки с номером в них на сервер.
- Сервер проверяет этот номер и по этому номеру отправляет клиенту его логин и пароль, и клиент не должен самостоятельно их опять вводить.
Как простой пример, давайте отправим клиенту какой-нибудь куки, чтобы он сохранился у него в браузере, и клиент отправит этот куки обратно на сервер, и сервер отправит клиенту эти куки для вывода на странице у клиента.
Пример программы:
1import java.io.IOException;
2import java.io.PrintWriter;
3
4import javax.servlet.ServletException;
5import javax.servlet.http.HttpServlet;
6import javax.servlet.http.HttpServletRequest;
7import javax.servlet.http.HttpServletResponse;
8import javax.servlet.http.Cookie;
9import javax.servlet.annotation.*;
10
11@WebServlet("/cookieservlet")
12public class MyServlet extends HttpServlet{
13 int i = 0;
14 protected void doGet(HttpServletRequest req,
15 HttpServletResponse resp)
16 throws ServletException, IOException {
17 PrintWriter pw = resp.getWriter();
18 //Также можем создать куки передав имя и значение
19 //кука как параметры конструктора класса Cookie.
20 Cookie cookie=new Cookie("someCookieName","someCookieValue");
21 //Довольно важный метод setPath, который следует упомянуть.
22 //Делает так чтобы этот куки был доступен только
23 //указанной аргументом странице нашего веб ресурса.
24 //То есть получить данный куки другой сервлет не сможет.
25 cookie.setPath("/cookieservlet");
26 //и отправить его клиенту в браузер
27 resp.addCookie(cookie);
28
29 //с помощью метода getCookies можем получить все куки,
30 //которые отправляем на клиент при запросах
31 //к нашему веб ресурсу.
32 Cookie[] allcookies = req.getCookies();
33 for(Cookie somecookie : allcookies){
34 //с помощью методов getName(), getValue()
35 //можем получить имя и значение куков веб-ресурса.
36 //Отправляем клиенту его куки для вывода.
37 pw.println(somecookie.getName()+" = "
38 +somecookie.getValue());
39 }
40 }
41}
Проверка работы программы с Cookies
Скомпилируем файл сервлета и в адресной строке перейдем по адресу /cookiesservlet.

Как видим, куки клиента были успешно отправлены сервером клиенту для вывода.
Можно также увидеть кук JSESSIONID. Что это за кук разберем в следующем уроке.
Также справа можно увидеть, что отправленный кук someCookieName
храниться у клиента в браузере. Чтобы посмотреть хранящиеся куки в браузере Chrome нужно нажать на кнопку F12
.
Эти куки клиент теперь может всегда посмотреть в браузере когда заходит на страницу данного сервлета и он будет там существовать пока клиент не очистит куки браузера.
Следующие уроки
Работа с сессиями (Session) в Java
14
мин.
Интерфейс ServletContext
15
мин.
Интерфейс ServletConfig
15
мин.