Sobes.tech
Junior

Servletтерде 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): cookie үчүн HttpOnly белгисин орнотот.

Cookie алуу жана орнотуу мисалы:

// Суроо аркылуу cookie алуу
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("userName".equals(cookie.getName())) {
            String userName = cookie.getValue();
            // Маанисин колдонуу
            break;
        }
    }
}

// Жаңы cookie түзүү жана жоопко кошуу
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // 30 күн
response.addCookie(newCookie);