Sobes.tech
Junior

Kādi metodes ir paredzētas darbam ar sīkdatnēm servletos?

sobes.tech AI

Atbilde no AI

Servletos izmanto HttpServletRequest objektu metodes (sīkdatņu saņemšanai) un HttpServletResponse (sīkdatņu sūtīšanai).

Saņemšana sīkdatnes no pieprasījuma:

  • Cookie[] getCookies(): Atgriež Cookie objektu masīvu, kas iegūts pieprasījumā. Ja sīkdatne nav, atgriež null.

Sīkdatnes sūtīšana atbildē:

  • void addCookie(Cookie cookie): Pievieno norādīto Cookie objektu atbildei.

Cookie klase satur šādas galvenās metodes:

  • String getName(): Atgriež sīkdatnes nosaukumu.
  • String getValue(): Atgriež sīkdatnes vērtību.
  • void setValue(String newValue): Iestata jaunu vērtību.
  • String getPath(): Atgriež ceļu, kurā ir pieejama sīkdatne.
  • void setPath(String uri): Iestata ceļu sīkdatnei.
  • String getDomain(): Atgriež domēnu, kurā ir derīga sīkdatne.
  • void setDomain(String pattern): Iestata domēnu sīkdatnei.
  • int getMaxAge(): Atgriež maksimālo dzīves laiku (sekundēs) sīkdatnei. Negatīva vērtība nozīmē, ka sīkdatne pastāv līdz pārlūkprogrammas aizvēršanai. 0 nozīmē dzēst sīkdatni.
  • void setMaxAge(int expiry): Iestata maksimālo dzīves laiku.
  • boolean getSecure(): Atgriež true, ja sīkdatne jānosūta tikai drošā (HTTPS) savienojumā.
  • void setSecure(boolean flag): Iestata drošības marķieri.
  • int getVersion(): Atgriež sīkdatnes protokola versiju.
  • void setVersion(int v): Iestata versiju.
  • boolean isHttpOnly(): Atgriež true, ja sīkdatne ir pieejama tikai caur HTTP pieprasījumiem (ne caur JavaScript).
  • void setHttpOnly(boolean isHttpOnly): Iestata HttpOnly marķieri.

Piemērs sīkdatnes saņemšanai un iestatīšanai:

// Saņem sīkdatni no pieprasījuma
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("userName".equals(cookie.getName())) {
            String userName = cookie.getValue();
            // Izmantojiet vērtību
            break;
        }
    }
}

// Iestata jaunu sīkdatni atbildē
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // 30 dienas
response.addCookie(newCookie);