Работа с сессиями (Session) в Java
Last updated: 9 мая 2025 г.Если выбрать все cookies нашего веб-ресурса, то там всегда будет кук с именем SESSIONID
и значением идентификатором.
Этот идентификатор уникален для каждого клиента и он отправляется на сервер при запросах клиента и сервер ассоциирует этот уникльный ID с сессией конкретного клиента.
Благодаря этому на сервере мы можем ложить в сессию конкретного клиента различную информацию и эта информация, ясное дело, будет ассоциирована с конкретным клиентом.
Например:
Когда клиент хочет что-то купить в интернет-магазине, он добавляет товар в корзину, при этом за кулисами товар добавляется в сессию клиента. Когда клиент захочет просмотреть корзину сервер выгребает товары из сессии и показывает клиенту.
Сессия обычно живет какой-то промежуток времени и его зачастую можно настроить.
Как простой пример давайте что-нибудь положим в сессию клиента и отправим ее содержимое на страницу клиента.
Пример программы:
1import java.util.*;
2import java.io.IOException;
3import java.io.PrintWriter;
4
5import javax.servlet.ServletException;
6import javax.servlet.http.HttpServlet;
7import javax.servlet.http.HttpServletRequest;
8import javax.servlet.http.HttpServletResponse;
9import javax.servlet.http.HttpSession;
10import javax.servlet.annotation.*;
11
12@WebServlet("/sessionsservlet")
13public class MyServlet extends HttpServlet{
14 int i = 0;
15 protected void doGet(HttpServletRequest req,
16 HttpServletResponse resp)
17 throws ServletException, IOException {
18 PrintWriter pw = resp.getWriter();
19 //getSession – получаем сессию клиента
20 HttpSession sess = req.getSession();
21 //допустим клиент положил какойто товар в корзину
22 String someProductName = "Refrigerator";
23 //и можем положить его имя в сессию
24 sess.setAttribute("product", someProductName);
25 //getAttributeNames – получаем имена аттрибутов
26 Enumeration <String> attrNames = sess.getAttributeNames();
27 while(attrNames.hasMoreElements()) {
28 String attrName = attrNames.nextElement();
29 //выводим имя аттрибута
30 pw.println(attrName);
31 //выводим значение аттрибута
32 pw.println(sess.getAttribute(attrName));
33 pw.println("————-");
34 }
35 }
36}
Проверим работу программы с Session
Скомпилируем файл сервлета и в адресной строке перейдем по адресу /sessionsservlet
.

Видим содержимое сессии клиента.
Следующие уроки
Интерфейс ServletContext
15
мин.
Интерфейс ServletConfig
15
мин.
encodeURL и encodeRedirectURL в Java сервлетах
16
мин.