Топ-100Работа с Cookies в Java - CodOrbits
LogoCodOrbits

Раздел: Servlets

Познакомьтесь с сервлетами Java: создание динамических веб-страниц и работа с HTTP-запросами и ответами.

Все разделы
Иконка Servlets

Работа с Cookies в Java

Last updated: 9 мая 2025 г.

Cookies это данные, которые генерируются сервером и хранятся в браузере клиента.

Браузер клиента возвращает эти данные обратно на сервер когда клиент делает запрос из того же веб-ресурса.

Как пример, можно привести автоматический ввод логина и пароля когда пользователь заходит на страницу для входа в учетную запись, на которой он уже вводил свои логин и пароль. Думаю всем это должно быть знакомо.

Example

Раскроем этот пример получше:

  • Когда клиент вводит логин и пароль на каком-то веб-ресурсе они отправляются на сервер и там сохраняются.
  • Сервер генерирует некий номер, который будет принадлежать только конкретно этому клиенту и отправляет сгенерированный номер клиенту, который сохраняется у него в браузере (в куках) и когда клиент повторно заходит на этот веб-ресурс браузер отправляет сохраненные куки с номером в них на сервер.
  • Сервер проверяет этот номер и по этому номеру отправляет клиенту его логин и пароль, и клиент не должен самостоятельно их опять вводить.

Как простой пример, давайте отправим клиенту какой-нибудь куки, чтобы он сохранился у него в браузере, и клиент отправит этот куки обратно на сервер, и сервер отправит клиенту эти куки для вывода на странице у клиента.

Пример программы:

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.

Как видим, куки клиента были успешно отправлены сервером клиенту для вывода.

Search Icon

Можно также увидеть кук JSESSIONID. Что это за кук разберем в следующем уроке.

Также справа можно увидеть, что отправленный кук someCookieName храниться у клиента в браузере. Чтобы посмотреть хранящиеся куки в браузере Chrome нужно нажать на кнопку F12.    

Эти куки клиент теперь может всегда посмотреть в браузере когда заходит на страницу данного сервлета и он будет там существовать пока клиент не очистит куки браузера.


Следующие уроки

Работа с сессиями (Session) в Java

14
мин.

Similar Articles Icon
Divider

Интерфейс ServletContext

15
мин.

Similar Articles Icon
Divider

Интерфейс ServletConfig

15
мин.

Similar Articles Icon