Топ-100Работа с сессиями (Session) в Java - CodOrbits
LogoCodOrbits

Раздел: Servlets

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

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

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

Last updated: 9 мая 2025 г.

Если выбрать все cookies нашего веб-ресурса, то там всегда будет кук с именем SESSIONID и значением идентификатором.

Этот идентификатор уникален для каждого клиента и он отправляется на сервер при запросах клиента и сервер ассоциирует этот уникльный ID с сессией конкретного клиента.

Благодаря этому на сервере мы можем ложить в сессию конкретного клиента различную информацию и эта информация, ясное дело, будет ассоциирована с конкретным клиентом.

Example

Например:

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

Search Icon

Сессия обычно живет какой-то промежуток времени и его зачастую можно настроить.

Как простой пример давайте что-нибудь положим в сессию клиента и отправим ее содержимое на страницу клиента.

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

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
мин.

Similar Articles Icon
Divider

Интерфейс ServletConfig

15
мин.

Similar Articles Icon
Divider

encodeURL и encodeRedirectURL в Java сервлетах

16
мин.

Similar Articles Icon