Файли cookie в JSP із прикладом
⚡ Розумний підсумок
JSP-файли cookie — це невеликі текстові файли, що зберігаються в браузері клієнта та допомагають JSP-застосункам track сесій, запам'ятовувати налаштування користувача та персоналізувати відповіді на кілька HTTP-запитів за допомогою API javax.servlet.http.Cookie та стандартних заголовків відповідей.
Що таке JSP-файли cookie?
Файли cookie JSP – це невеликі текстові файли, які веб-сервер на основі JSP просить браузер клієнта зберігати на пристрої користувача. Оскільки HTTP – це протокол без збереження стану, файли cookie JSP забезпечують простий, стандартизований спосіб запам’ятовування інформації між запитами, такої як стан входу, вибір мови, тема або магазин.ping ідентифікатори кошика.
- JSP-файли cookie — це звичайні текстові файли, що зберігаються браузером на клієнтській машині.
- Вони звикли до track інформація для керування сеансами, персоналізації та аналітики.
- JSP підтримує HTTP-файли cookie через базову технологію сервлетів та клас javax.servlet.http.Cookie.
- Файли cookie JSP – це transmitвсередині заголовків HTTP-запиту та відповіді для кожного відповідного запиту.
- Коли браузер налаштовано на прийняття файлів cookie, він зберігає їх на диску до закінчення терміну дії, встановленого параметром setMaxAge.
Навіщо використовувати JSP-файли cookie?
Розробники JSP покладаються на файли cookie, оскільки HTTP-запити незалежні один від одного. Без файлів cookie JSP сервер не знав би, що два запити належать одному відвідувачу. Файли cookie в JSP вирішують цю проблему з мінімальним станом на стороні сервера.
- Session tracкороль: Файл cookie JSESSIONID пов’язує кілька переглядів сторінок з одним логічним сеансом.
- Персоналізація: Файли cookie JSP можуть зберігати налаштування мови, теми або макета.
- Помічники автентифікації: Токени «Запам’ятати мене» та стан входу часто зберігаються в файлах cookie з увімкненими прапорцями HttpOnly та Secure.
- Аналітика: Файли cookie в JSP записують повернених відвідувачів, рефералів та шляхи конверсії.
Типи JSP-файлів cookie
- Постійний файл cookie: Постійний JSP-файл cookie зберігається на пристрої протягом часу, встановленого параметром setMaxAge. Він допомагає програмі запам'ятовувати налаштування та дані для входу після перезапуску браузера.
- Непостійний файл cookie: Непостійний JSP-файл cookie, який також називають сесійним файлом cookie, зберігається лише в пам’яті браузера та видаляється, коли користувач закриває браузер. Він здебільшого використовується для короткочасного сеансу. tracкороль.
Методи файлів cookie JSP
Клас javax.servlet.http.Cookie надає наступні методи, які найчастіше використовуються під час роботи з JSP-файлами cookie.
-
публічний недійсний setDomain(Рядковий домен)
Цей метод встановлення файлів cookie JSP встановлює домен, до якого застосовується файл cookie JSP.
-
публічний рядок getDomain()
Цей метод JSP get cookie повертає домен, до якого застосовується JSP Cookie.
-
публічний недійсний setMaxAge(цілотривалий термін дії)
Він встановлює максимальний час у секундах до закінчення терміну дії JSP-кукі. Нульове значення видаляє кукі, а від’ємне значення робить його сесійним кукі.
-
публічне ціле значення getMaxAge()
Він повертає максимальний вік JSP-кукі в секундах.
-
публічний рядок getName()
Він повертає назву JSP-кукі.
-
публічна недійсна множенняЗначення(рядкове значення)
Встановлює значення, пов'язане з JSP-файлом cookie.
-
публічний рядок getValue()
Повертає значення, пов'язане з JSP-кукі.
-
публічний недійсний setPath(Шлях до рядка)
Цей файл cookie set у методі JSP встановлює URL шлях, до якого застосовується файл cookie.
-
публічний рядок getPath()
Воно повертає URL шлях, до якого застосовується JSP-файл cookie.
-
публічний недійсний setSecure(логічний прапорець)
Він позначає JSP-кукі таким чином, що він надсилається лише через зашифровані HTTPS-з’єднання.
-
публічний недійсний setComment(String cmt)
У ньому описано призначення JSP-файлу cookie.
-
публічний рядок getComment()
Він повертає коментар, що описує JSP-кукі.
Як обробляти JSP-файли cookie
Робота з JSP-файлами cookie включає три повторювані кроки. Той самий шаблон використовується для стану входу, перемикання тем та магазину.ping візки.
- Створіть об'єкт JSP Cookie за допомогою конструктора Cookie.
- Налаштуйте атрибути файлів cookie, зокрема максимальний вік, шлях та прапорці безпеки.
- Надсилайте файл cookie до браузера через заголовки відповіді HTTP за допомогою response.addCookie.
Як створити JSP-файл cookie
Новий JSP-файл cookie створюється шляхом створення екземпляра javax.servlet.http.Cookie з назвою та значенням. Потім файл cookie приєднується до об'єкта відповіді, щоб браузер зберігав його.
Як читати JSP-файли cookie
Під час кожного наступного запиту браузер надсилає відповідні JSP-файли cookie назад на сервер. Сторінка зчитує їх, викликаючи request.getCookies, який повертає масив об'єктів Cookie. Потім програма перебирає масив, шукає кожен файл cookie за назвою та використовує його значення.
Як видалити JSP-файл cookie
Щоб видалити JSP-файл cookie, сервер створює новий файл cookie з тим самим іменем, встановлює його значення в порожній рядок, викликає setMaxAge з нулем і додає його до відповіді. Потім браузер видаляє збережений файл cookie під час наступної відповіді.
Приклад файлів cookie в JSP
У цьому прикладі JSP Cookies застосунок створює два cookie для імені користувача та електронної пошти, зберігає їх активними протягом десяти годин, а потім зчитує значення на другій сторінці під назвою 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. Два поля введення, ім'я користувача та електронна пошта, збирають дані від користувача разом із кнопкою надсилання.
Action_cookie_main.jsp
Code Рядки з 6 по 9: Два об'єкти Cookie, ім'я користувача та електронна пошта, створюються за допомогою request.getParameter для зчитування значень, надісланих формою.
Code Рядки з 12 по 13: Метод setMaxAge викликається з числом 60, помноженим на 60, помноженим на 10, що встановлює час життя кожного JSP-кукі на десять годин.
Code Рядки з 16 по 17: Два файли cookie додаються до відповіді за допомогою response.addCookie. Потім браузер надсилає їх назад у наступних запитах, а сервер зчитує їх за допомогою request.getCookies або request.getParameter для поточного запиту.
Вихід
Коли ви виконуєте наведений вище код, ви отримуєте наступний вивід.
Коли виконується action_cookie.jsp, браузер показує два поля: ім'я користувача та електронну пошту. Після того, як користувач їх заповнить і натисне «Надіслати», action_cookie_main.jsp створює відповідні JSP-файли cookie на сервері, зберігає їх на клієнті та відображає значення, підтверджуючи успішне створення файлів cookie.
Найкращі практики для JSP-файлів cookie
Сучасні веб-застосунки повинні обробляти JSP-файли cookie як конфіденційні дані безпеки. Наведені нижче методи відповідають поточним розгортанням Servlet 4.x та Servlet 5.x.
- Використовувати лише Http: Позначте файли cookie автентифікації як HttpOnly, щоб клієнтські скрипти не могли їх зчитувати.
- Використовуйте безпечний режим: Надсилайте файли cookie лише через HTTPS, викликаючи setSecure(true).
- Використовуйте SameSite: Налаштуйте атрибут SameSite (Lax або Strict) через контейнер або заголовки відповідей, щоб запобігти підробці міжсайтових запитів.
- Зберігайте невеликі значення: Зберігайте ідентифікатор у файлі cookie та зберігайте дані на стороні сервера.
- Встановити явний термін дії: Використовуйте setMaxAge для передбачуваної поведінки в різних браузерах.



