Cookies στο JSP με Παράδειγμα
⚡ Έξυπνη Σύνοψη
Τα JSP cookies είναι μικρά αρχεία κειμένου που αποθηκεύονται στο πρόγραμμα περιήγησης του πελάτη και βοηθούν τις εφαρμογές JSP. track συνεδρίες, να θυμάστε τις προτιμήσεις των χρηστών και να εξατομικεύετε τις απαντήσεις σε πολλαπλά αιτήματα HTTP χρησιμοποιώντας το API javax.servlet.http.Cookie και τις τυπικές κεφαλίδες απόκρισης.

Τι είναι τα JSP Cookies;
Τα JSP Cookies είναι μικρά αρχεία κειμένου που ένας διακομιστής ιστού που βασίζεται σε JSP ζητά από το πρόγραμμα περιήγησης του πελάτη να αποθηκεύσει στη συσκευή του χρήστη. Επειδή το HTTP είναι ένα πρωτόκολλο χωρίς κατάσταση, τα JSP Cookies παρέχουν έναν απλό, βασισμένο σε πρότυπα τρόπο για την απομνημόνευση πληροφοριών μεταξύ αιτημάτων, όπως η κατάσταση σύνδεσης, η επιλογή γλώσσας, το θέμα ή το κατάστημα.ping αναγνωριστικά καλαθιού αγορών.
- Τα JSP cookies είναι αρχεία απλού κειμένου που αποθηκεύονται στον υπολογιστή-πελάτη από το πρόγραμμα περιήγησης.
- Είναι συνηθισμένοι να track πληροφορίες για τη διαχείριση συνεδριών, την εξατομίκευση και την ανάλυση.
- Το JSP υποστηρίζει cookies HTTP μέσω της υποκείμενης τεχνολογίας Servlet και της κλάσης javax.servlet.http.Cookie.
- Τα JSP cookies είναι transmitενσωματώνεται μέσα σε κεφαλίδες αιτημάτων και απόκρισης HTTP σε κάθε αντίστοιχο αίτημα.
- Όταν το πρόγραμμα περιήγησης έχει ρυθμιστεί ώστε να δέχεται cookies, τα αποθηκεύει στον δίσκο μέχρι την ημερομηνία λήξης που ορίζεται από το setMaxAge.
Γιατί να χρησιμοποιήσω τα JSP Cookies;
Οι προγραμματιστές JSP βασίζονται σε cookies επειδή τα αιτήματα HTTP είναι ανεξάρτητα το ένα από το άλλο. Χωρίς τα cookies JSP, ο διακομιστής δεν θα γνώριζε ότι δύο αιτήματα ανήκουν στον ίδιο επισκέπτη. Τα cookies στο JSP λύνουν αυτό το πρόβλημα με ελάχιστη κατάσταση από την πλευρά του διακομιστή.
- Συνεδρία tracΒασιλιάς: Ένα cookie JSESSIONID συνδέει πολλαπλές προβολές σελίδας με μία λογική συνεδρία.
- Εξατομίκευση: Τα JSP cookies μπορούν να αποθηκεύσουν προτιμήσεις γλώσσας, θέματος ή διάταξης.
- Βοηθοί ελέγχου ταυτότητας: Τα διακριτικά "Να με θυμάσαι" και η κατάσταση σύνδεσης συχνά βρίσκονται σε cookies με ενεργοποιημένες τις σημαίες HttpOnly και Secure.
- Ανάλυση: Τα cookies στο JSP καταγράφουν τους επισκέπτες που επιστρέφουν, τους παραπομπείς και τις διαδρομές μετατροπής.
Τύποι cookie JSP
- Επίμονο cookie: Ένα μόνιμο JSP cookie παραμένει αποθηκευμένο στη συσκευή για το χρονικό διάστημα που ορίζεται με την εντολή setMaxAge. Βοηθά την εφαρμογή να θυμάται τις προτιμήσεις και τα στοιχεία σύνδεσης κατά την επανεκκίνηση του προγράμματος περιήγησης.
- Μη μόνιμο cookie: Ένα μη μόνιμο cookie JSP, που ονομάζεται επίσης cookie περιόδου σύνδεσης, βρίσκεται μόνο στη μνήμη του προγράμματος περιήγησης και καταργείται όταν ο χρήστης κλείσει το πρόγραμμα περιήγησης. Χρησιμοποιείται κυρίως για περιόδους σύνδεσης μικρής διάρκειας. tracΒασιλιάς.
Μέθοδοι Cookies JSP
Η κλάση javax.servlet.http.Cookie παρουσιάζει τις ακόλουθες μεθόδους που χρησιμοποιούνται συχνότερα κατά την εργασία με JSP Cookies.
-
δημόσιο void setDomain(String domain)
Αυτή η μέθοδος cookie ορισμού JSP ορίζει τον τομέα στον οποίο εφαρμόζεται το cookie JSP.
-
δημόσια συμβολοσειρά getDomain()
Αυτή η μέθοδος JSP get cookie επιστρέφει τον τομέα στον οποίο εφαρμόζεται το JSP Cookie.
-
public void setMaxAge(int expiry)
Ορίζει τον μέγιστο χρόνο σε δευτερόλεπτα πριν λήξει το JSP Cookie. Μια τιμή μηδέν διαγράφει το cookie και μια αρνητική τιμή το καθιστά cookie περιόδου σύνδεσης.
-
δημόσιος ακέραιος αριθμός getMaxAge()
Επιστρέφει τη μέγιστη ηλικία του JSP Cookie σε δευτερόλεπτα.
-
δημόσια συμβολοσειρά getName()
Επιστρέφει το όνομα του JSP Cookie.
-
public void setValue(Τιμή συμβολοσειράς)
Ορίζει την τιμή που σχετίζεται με το JSP Cookie.
-
δημόσια συμβολοσειρά getValue()
Επιστρέφει την τιμή που σχετίζεται με το JSP Cookie.
-
public void setPath(Διαδρομή συμβολοσειράς)
Αυτό το cookie σετ στη μέθοδο JSP ορίζει το URL διαδρομή στην οποία εφαρμόζεται το cookie.
-
δημόσια συμβολοσειρά getPath()
Επιστρέφει το URL διαδρομή στην οποία εφαρμόζεται το JSP Cookie.
-
public void setSecure(λογική σημαία)
Σημειώνει το JSP Cookie έτσι ώστε να αποστέλλεται μόνο μέσω κρυπτογραφημένων συνδέσεων HTTPS.
-
public void setComment(String cmt)
Περιγράφει τον σκοπό του JSP Cookie.
-
δημόσια συμβολοσειρά getComment()
Επιστρέφει το σχόλιο που περιγράφει το JSP Cookie.
Πώς να χειρίζεστε τα cookies JSP
Η εργασία με τα JSP Cookies περιλαμβάνει τρία επαναλήψιμα βήματα. Το ίδιο μοτίβο χρησιμοποιείται για την κατάσταση σύνδεσης, τις εναλλαγές θεμάτων και το κατάστημα.ping καρότσια.
- Δημιουργήστε το αντικείμενο JSP Cookie χρησιμοποιώντας τον κατασκευαστή Cookie.
- Ρυθμίστε τις παραμέτρους των χαρακτηριστικών των cookie, ειδικά τη μέγιστη ηλικία, τη διαδρομή και τις σημαίες ασφαλείας.
- Στείλτε το cookie στο πρόγραμμα περιήγησης μέσω κεφαλίδων απόκρισης HTTP χρησιμοποιώντας το response.addCookie.
Πώς να δημιουργήσετε ένα cookie JSP
Ένα νέο JSP Cookie δημιουργείται δημιουργώντας ένα αντίγραφο του javax.servlet.http.Cookie με ένα όνομα και μια τιμή. Το cookie στη συνέχεια προσαρτάται στο αντικείμενο απόκρισης, έτσι ώστε το πρόγραμμα περιήγησης να το αποθηκεύσει.
Πώς να διαβάσετε τα cookies JSP
Σε κάθε επόμενο αίτημα, το πρόγραμμα περιήγησης στέλνει αντίστοιχα JSP Cookies πίσω στον διακομιστή. Η σελίδα τα διαβάζει καλώντας την εντολή request.getCookies, η οποία επιστρέφει έναν πίνακα αντικειμένων Cookie. Στη συνέχεια, η εφαρμογή επαναλαμβάνει τον πίνακα, αναζητά κάθε cookie με βάση το όνομά του και χρησιμοποιεί την τιμή του.
Πώς να διαγράψετε ένα cookie JSP
Για να διαγράψει ένα JSP Cookie, ο διακομιστής δημιουργεί ένα νέο cookie με το ίδιο όνομα, ορίζει την τιμή του σε μια κενή συμβολοσειρά, καλεί την setMaxAge με μηδέν και την προσθέτει στην απόκριση. Στη συνέχεια, το πρόγραμμα περιήγησης καταργεί το αποθηκευμένο cookie στην επόμενη απόκριση.
Παράδειγμα Cookies σε JSP
Σε αυτό το παράδειγμα Cookies JSP, η εφαρμογή δημιουργεί δύο cookies για όνομα χρήστη και email, τα διατηρεί ενεργά για δέκα ώρες και, στη συνέχεια, διαβάζει τις τιμές ξανά σε μια δεύτερη σελίδα που ονομάζεται action_cookie_main.jsp.
Action_cookie.jsp
<%-- Action_cookie.jsp: input form for JSP Cookies demo --%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie</title> </head> <body> <form action="action_cookie_main.jsp" method="GET"> Username: <input type="text" name="username"> <br /> Email: <input type="text" name="email" /> <input type="submit" value="Submit" /> </form> </body> </html>
Action_cookie_main.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% Cookie username = new Cookie("username", request.getParameter("username")); Cookie email = new Cookie("email", request.getParameter("email")); username.setMaxAge(60*60*10); email.setMaxAge(60*60*10); // Add both the JSP Cookies in the response header. response.addCookie( username ); response.addCookie( email ); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie JSP</title> </head> <body> <b>Username:</b> <%= request.getParameter("username")%> <b>Email:</b> <%= request.getParameter("email")%> </body> </html>
Επεξήγηση του Code
Action_cookie.jsp
Code Γραμμή 10 έως 15: Η σελίδα δηλώνει μια φόρμα που υποβάλλεται στο action_cookie_main.jsp. Δύο πεδία εισαγωγής, όνομα χρήστη και email, συλλέγουν δεδομένα από τον χρήστη μαζί με ένα κουμπί υποβολής.
Action_cookie_main.jsp
Code Γραμμή 6 έως 9: Δύο αντικείμενα cookie, το όνομα χρήστη και το email, δημιουργούνται χρησιμοποιώντας το request.getParameter για την ανάγνωση των τιμών που υποβάλλονται από τη φόρμα.
Code Γραμμή 12 έως 13: Η μέθοδος setMaxAge καλείται με το 60 πολλαπλασιασμένο επί 60 πολλαπλασιασμένο επί 10, το οποίο ορίζει τη διάρκεια ζωής κάθε JSP Cookie σε δέκα ώρες.
Code Γραμμή 16 έως 17: Τα δύο cookies επισυνάπτονται στην απόκριση με την εντολή response.addCookie. Το πρόγραμμα περιήγησης τα στέλνει πίσω σε επόμενα αιτήματα και ο διακομιστής τα διαβάζει χρησιμοποιώντας request.getCookies ή request.getParameter για το τρέχον αίτημα.
Παραγωγή
Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο.
Όταν εκτελείται το action_cookie.jsp, το πρόγραμμα περιήγησης εμφανίζει τα δύο πεδία, όνομα χρήστη και email. Αφού ο χρήστης τα συμπληρώσει και κάνει κλικ στην επιλογή Υποβολή, το action_cookie_main.jsp δημιουργεί τα αντίστοιχα JSP Cookies στον διακομιστή, τα αποθηκεύει στον υπολογιστή-πελάτη και εμφανίζει τις τιμές, επιβεβαιώνοντας ότι τα cookies δημιουργήθηκαν με επιτυχία.
καλυτερα Practices for JSP Cookies
Οι σύγχρονες εφαρμογές ιστού θα πρέπει να αντιμετωπίζουν τα JSP Cookies ως δεδομένα ευαίσθητα στην ασφάλεια. Οι ακόλουθες πρακτικές ευθυγραμμίζονται με τις τρέχουσες αναπτύξεις Servlet 4.x και Servlet 5.x.
- Χρήση HttpOnly: Επισημάνετε τα cookie ελέγχου ταυτότητας ως HttpOnly, ώστε τα σενάρια από την πλευρά του πελάτη να μην μπορούν να τα διαβάσουν.
- Χρησιμοποιήστε Ασφαλή: Στείλτε cookies μόνο μέσω HTTPS καλώντας την setSecure(true).
- Χρησιμοποιήστε το SameSite: Ρυθμίστε τις παραμέτρους του χαρακτηριστικού SameSite (Lax ή Strict) μέσω του κοντέινερ ή των κεφαλίδων απόκρισης για να μετριάσετε την πλαστογράφηση αιτημάτων μεταξύ ιστότοπων.
- Διατηρήστε μικρές τιμές: Αποθηκεύστε ένα αναγνωριστικό στο cookie και διατηρήστε τα δεδομένα στον χώρο αποθήκευσης από την πλευρά του διακομιστή.
- Ορισμός ρητής λήξης: Χρησιμοποιήστε το setMaxAge για προβλέψιμη συμπεριφορά σε όλα τα προγράμματα περιήγησης.


