Sobes.tech
Junior

რა მეთოდები არსებობს სერვლეტებში cookies-ის სამუშაოდ?

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);