Pliki cookie w JSP z przykładem
⚡ Inteligentne podsumowanie
Pliki cookie JSP to małe pliki tekstowe przechowywane w przeglądarce klienta, które pomagają aplikacjom JSP track sesji, zapamiętuje preferencje użytkownika i personalizuje odpowiedzi na wiele żądań HTTP przy użyciu interfejsu API javax.servlet.http.Cookie i standardowych nagłówków odpowiedzi.

Czym są pliki cookie JSP?
Pliki cookie JSP to małe pliki tekstowe, które serwer WWW oparty na JSP prosi przeglądarkę klienta o zapisanie na urządzeniu użytkownika. Ponieważ HTTP jest protokołem bezstanowym, pliki cookie JSP zapewniają prosty, oparty na standardach sposób zapamiętywania informacji między żądaniami, takich jak stan logowania, wybór języka, motyw czy sklep.ping identyfikatory koszyków.
- Pliki cookie JSP to zwykłe pliki tekstowe zapisywane na komputerze klienta przez przeglądarkę.
- Są przyzwyczajeni tracinformacje k do zarządzania sesjami, personalizacji i analiz.
- JSP obsługuje pliki cookie HTTP poprzez technologię Servlet i klasę javax.servlet.http.Cookie.
- Pliki cookie JSP to transmitumieszczane w nagłówkach żądań i odpowiedzi HTTP przy każdym pasującym żądaniu.
- Jeśli przeglądarka jest skonfigurowana tak, aby akceptować pliki cookie, są one przechowywane na dysku do daty wygaśnięcia ustawionej w parametrze setMaxAge.
Dlaczego warto używać plików cookie JSP?
Twórcy stron JSP polegają na plikach cookie, ponieważ żądania HTTP są od siebie niezależne. Bez plików cookie JSP serwer nie wiedziałby, że dwa żądania należą do tego samego użytkownika. Pliki cookie w JSP rozwiązują ten problem, minimalizując stan po stronie serwera.
- Sesja trackról: Plik cookie JSESSIONID łączy wiele wyświetleń stron w jedną logiczną sesję.
- Personalizacja: Pliki cookie JSP mogą przechowywać preferencje dotyczące języka, motywu lub układu.
- Pomocnicy uwierzytelniania: Tokeny „Zapamiętaj mnie” i stan logowania często znajdują się w plikach cookie z włączonymi flagami HttpOnly i Secure.
- Analityka: Pliki cookie w JSP rejestrują powracających użytkowników, osoby polecające i ścieżki konwersji.
Rodzaje plików cookie JSP
- Trwały plik cookie: Trwały plik cookie JSP pozostaje na urządzeniu przez czas określony za pomocą setMaxAge. Pomaga aplikacji zapamiętać preferencje i dane logowania po ponownym uruchomieniu przeglądarki.
- Plik cookie nietrwały: Nietrwały plik cookie JSP, zwany również plikiem cookie sesji, jest przechowywany tylko w pamięci przeglądarki i jest usuwany po jej zamknięciu przez użytkownika. Jest używany głównie do krótkotrwałych sesji. trackról.
Metody plików cookie JSP
Klasa javax.servlet.http.Cookie udostępnia poniższe metody najczęściej używane podczas pracy z plikami cookie JSP.
-
public void setDomain(String domain)
Ta metoda ustawiania plików cookie JSP ustawia domenę, do której ma zastosowanie plik cookie JSP.
-
publiczny ciąg getDomain()
Ta metoda JSP get cookie zwraca domenę, do której odnosi się plik cookie JSP.
-
public void setMaxAge(int expire)
Ustawia maksymalny czas w sekundach przed wygaśnięciem pliku cookie JSP. Wartość zerowa usuwa plik cookie, a wartość ujemna sprawia, że jest to plik cookie sesji.
-
publiczna int getMaxAge()
Zwraca maksymalny wiek pliku cookie JSP w sekundach.
-
publiczny ciąg getName()
Zwraca nazwę pliku cookie JSP.
-
public void setValue(String value)
Ustawia wartość powiązaną z plikiem cookie JSP.
-
publiczny String getValue()
Zwraca wartość powiązaną z plikiem cookie JSP.
-
public void setPath(String ścieżka)
Ten zestaw plików cookie w metodzie JSP ustawia URL ścieżka, do której odnosi się plik cookie.
-
publiczny ciąg getPath()
Zwraca URL ścieżka, do której odnosi się plik cookie JSP.
-
public void setSecure(flaga logiczna)
Oznacza plik cookie JSP w taki sposób, że jest on wysyłany wyłącznie przez szyfrowane połączenia HTTPS.
-
public void setComment(String cmt)
Opisuje cel pliku cookie JSP.
-
publiczny ciąg getComment()
Zwraca komentarz opisujący plik cookie JSP.
Jak obsługiwać pliki cookie JSP
Praca z plikami cookie JSP obejmuje trzy powtarzalne kroki. Ten sam schemat jest używany do logowania, przełączania motywów i sklepu.ping wózki.
- Utwórz obiekt JSP Cookie przy użyciu konstruktora Cookie.
- Skonfiguruj atrybuty plików cookie, zwłaszcza maksymalny wiek, ścieżkę i flagi bezpieczeństwa.
- Wyślij plik cookie do przeglądarki poprzez nagłówki odpowiedzi HTTP przy użyciu response.addCookie.
Jak utworzyć plik cookie JSP
Nowy plik cookie JSP jest tworzony poprzez utworzenie instancji javax.servlet.http.Cookie z nazwą i wartością. Następnie plik cookie jest dołączany do obiektu odpowiedzi, aby przeglądarka go zapisała.
Jak czytać pliki cookie JSP
Przy każdym kolejnym żądaniu przeglądarka wysyła do serwera pasujące pliki cookie JSP. Strona odczytuje je, wywołując metodę request.getCookies, która zwraca tablicę obiektów cookie. Następnie aplikacja iteruje po tablicy, wyszukuje każde ciasteczko po nazwie i używa jego wartości.
Jak usunąć plik cookie JSP
Aby usunąć plik cookie JSP, serwer tworzy nowy plik cookie o tej samej nazwie, ustawia jego wartość na pusty ciąg znaków, wywołuje funkcję setMaxAge z zerem i dodaje ją do odpowiedzi. Przeglądarka usuwa następnie zapisany plik cookie w kolejnej odpowiedzi.
Przykład plików cookie w JSP
W tym przykładzie plików cookie JSP aplikacja tworzy dwa pliki cookie: nazwę użytkownika i adres e-mail, przechowuje je przez dziesięć godzin, a następnie odczytuje ich wartości na drugiej stronie o nazwie 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>
Wyjaśnienie dotyczące Code
Action_cookie.jsp
Code Linia 10 do 15: Strona deklaruje formularz, który jest przesyłany do pliku action_cookie_main.jsp. Dwa pola wejściowe – nazwa użytkownika i adres e-mail – zbierają dane od użytkownika, a także zawierają przycisk „Prześlij”.
Action_cookie_main.jsp
Code Linia 6 do 9: Dwa obiekty Cookie, nazwa użytkownika i adres e-mail, są tworzone za pomocą request.getParameter w celu odczytania wartości przesłanych przez formularz.
Code Linia 12 do 13: Metoda setMaxAge jest wywoływana poprzez pomnożenie 60 przez 60 i pomnożenie ich przez 10, co ustawia czas życia każdego pliku cookie JSP na dziesięć godzin.
Code Linia 16 do 17: Te dwa pliki cookie są dołączane do odpowiedzi za pomocą response.addCookie. Przeglądarka odsyła je następnie przy kolejnych żądaniach, a serwer odczytuje je za pomocą request.getCookies lub request.getParameter dla bieżącego żądania.
Wydajność
Po wykonaniu powyższego kodu otrzymasz następujący wynik.
Po uruchomieniu pliku action_cookie.jsp przeglądarka wyświetla dwa pola: nazwę użytkownika i adres e-mail. Po ich wypełnieniu i kliknięciu przycisku „Prześlij”, plik action_cookie_main.jsp tworzy na serwerze pasujące pliki cookie JSP, zapisuje je na komputerze klienta i wyświetla wartości, potwierdzając pomyślne utworzenie plików cookie.
Najlepsze praktyki dotyczące plików cookie JSP
Nowoczesne aplikacje internetowe powinny traktować pliki cookie JSP jako dane wrażliwe pod kątem bezpieczeństwa. Poniższe praktyki są zgodne z obecnymi wdrożeniami Servlet 4.x i Servlet 5.x.
- Użyj tylko HttpOnly: Oznacz pliki cookie uwierzytelniania jako HttpOnly, aby skrypty po stronie klienta nie mogły ich odczytać.
- Użyj bezpiecznego: Wysyłaj pliki cookie tylko przez HTTPS, wywołując setSecure(true).
- Użyj SameSite: Skonfiguruj atrybut SameSite (Lax lub Strict) za pomocą kontenera lub nagłówków odpowiedzi, aby ograniczyć ryzyko fałszowania żądań między witrynami.
- Utrzymuj małe wartości: Przechowuj identyfikator w pliku cookie i przechowuj dane w pamięci serwera.
- Ustaw jawny termin wygaśnięcia: Użyj setMaxAge, aby uzyskać przewidywalne zachowanie w różnych przeglądarkach.


