Sobes.tech
Junior

Какви методи са предвидени за работа с бисквитки в сервлетите?

sobes.tech AI

Отговор от AI

В сервлетите се използват методите на обектите HttpServletRequest (за получаване на бисквитки) и HttpServletResponse (за изпращане на бисквитки).

Получаване на бисквитки от заявката:

  • Cookie[] getCookies(): Връща масив от обекти Cookie, получени в заявката. Ако няма бисквитки, връща null.

Изпращане на бисквитки в отговора:

  • void addCookie(Cookie cookie): Добавя посочения обект Cookie към отговора.

Класът Cookie съдържа следните основни методи:

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

Пример за получаване и задаване на бисквитки:

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

// Задаване на нова бисквитка в отговора
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Продължителност 30 дни
response.addCookie(newCookie);