Sobes.tech
Junior

Ποια μέθοδοι προβλέπονται για την εργασία με cookies στους servlets;

sobes.tech AI

Απάντηση από AI

Στα servlets, χρησιμοποιούνται οι μέθοδοι των αντικειμένων HttpServletRequest (για την ανάκτηση cookies) και HttpServletResponse (για την αποστολή cookies).

Ανάκτηση cookies από το αίτημα:

  • Cookie[] getCookies(): Επιστρέφει έναν πίνακα αντικειμένων Cookie που λαμβάνονται στο αίτημα. Αν δεν υπάρχουν cookies, επιστρέφει null.

Αποστολή cookies στην απάντηση:

  • 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(): Επιστρέφει το domain στο οποίο ισχύει το cookie.
  • void setDomain(String pattern): Ορίζει το domain για το 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.

Παράδειγμα λήψης και ορισμού cookies:

// Λήψη cookies από το αίτημα
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);