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