Sobes.tech
Junior

Кадом усулҳо барои кор бо cookies дар сервлетҳо пешбинӣ шудаанд?

sobes.tech AI

Ҷавоб аз AI

У сервлетах для роботи з cookie використовуються методи об'єктів HttpServletRequest (для отримання cookie) та HttpServletResponse (для відправки cookie).

Отримання cookie з запиту:

  • Cookie[] getCookies(): Повертає масив об'єктів Cookie, отриманих у запиті. Якщо cookie немає, повертає null.

Відправка cookie у відповіді:

  • void addCookie(Cookie cookie): Додає вказаний об'єкт Cookie до відповіді.

Клас Cookie містить наступні основні методи:

  • String getName(): Повертає ім'я cookie.
  • String getValue(): Повертає значення cookie.
  • void setValue(String newValue): Встановлює нове значення cookie.
  • String getPath(): Повертає шлях, по якому доступна cookie.
  • void setPath(String uri): Встановлює шлях для cookie.
  • String getDomain(): Повертає домен, для якого дійсна cookie.
  • void setDomain(String pattern): Встановлює домен для cookie.
  • int getMaxAge(): Повертає максимальний час життя (у секундах) cookie. Від'ємне значення означає, що cookie існує до закриття браузера. 0 означає видалення cookie.
  • void setMaxAge(int expiry): Встановлює максимальний час життя cookie.
  • boolean getSecure(): Повертає true, якщо cookie має відправлятися лише через захищене (HTTPS) з'єднання.
  • void setSecure(boolean flag): Встановлює прапорець безпечного з'єднання для cookie.
  • int getVersion(): Повертає версію протоколу cookie.
  • void setVersion(int v): Встановлює версію протоколу cookie.
  • boolean isHttpOnly(): Повертає true, якщо cookie доступна лише через HTTP-запити (не через JavaScript).
  • void setHttpOnly(boolean isHttpOnly): Встановлює прапорець HttpOnly для cookie.

Приклад отримання та встановлення cookie:

// Отримання cookie з запиту
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("userName".equals(cookie.getName())) {
            String userName = cookie.getValue();
            // Використовуйте значення cookie
            break;
        }
    }
}

// Встановлення нового cookie у відповіді
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Термін дії 30 днів
response.addCookie(newCookie);