7-modul · 6-dars: Session · Filter · Cookie

Daraja: Ilg'or

Session · Filter · Cookie. Jakarta EE bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Session · Filter · Cookie tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya HTTP o'zi stateless, session esa server tomonda bir nechta requestni foydalanuvchi holatiga bog'laydi. HttpSession odatda session-id cookie orqali topiladi. getSession() yaratishi mumkin, getSession(false) faqat mavjudini oladi. Cookie clientda saqlanadigan kichik qiymat; sessionning barcha ma'lumoti cookie ichida turishi shart emas. Servlet init-param bitta servletga, context-param ilovaga tegishli konfiguratsiyani beradi. ServletContextListener ilova hayot siklini, HttpSessionListener session yaratilishi/yopilishini kuzatadi. Filter chain.doFilterdan oldin va keyin so'rov-javobni tekshiradi; encoding, logging va xavfsizlik uchun ishlatiladi. DoFilter chaqirilmasa zanjir to'xtaydi. Login vaqtida session identifikatorini yangilash fixation xavfini kamaytiradi. HttpOnly JavaScript o'qishini, Secure HTTP orqali yuborilishini cheklaydi; SameSite va CSRF himoyasi alohida qarorlardir. Logoutda server sessionini bekor qiling. Error page yoki exception mapping ichki stack trace va sirlarni clientga chiqarmasligi kerak.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/7-module%28Jakarta%20EE%29.md) [Rasmiy qo‘llanma](https://jakarta.ee/specifications/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

var session = request.getSession();
session.setAttribute("userId", verifiedUserId);
request.changeSessionId();
// Chiqish:
// request.getSession(false).invalidate();

Keng tarqalgan xatolar

Mashqlar

Teglar: nazariya, modul-07, pdp

Interaktiv ko'rinish (viktorina, izohlar, tarix)