Бисквитки в JSP с пример
⚡ Умно обобщение
JSP бисквитките са малки текстови файлове, съхранявани в браузъра на клиента, които помагат на JSP приложенията track сесии, запомняне на потребителските предпочитания и персонализиране на отговорите в множество HTTP заявки, използвайки API javax.servlet.http.Cookie и стандартните заглавки за отговори.

Какво представляват JSP бисквитките?
JSP „бисквитките“ са малки текстови файлове, които JSP-базиран уеб сървър изисква от клиентския браузър да съхрани на потребителското устройство. Тъй като HTTP е протокол без запазване на състоянието, JSP „бисквитките“ предоставят опростен, базиран на стандарти начин за запомняне на информация между заявките, като например състояние на влизане, избор на език, тема или магазин.ping идентификатори на количките.
- JSP „бисквитките“ са обикновени текстови файлове, съхранявани на клиентската машина от браузъра.
- Те са свикнали да track информация за управление на сесии, персонализиране и анализи.
- JSP поддържа HTTP бисквитки чрез основната Servlet технология и класа javax.servlet.http.Cookie.
- JSP бисквитките са transmitвътре в HTTP заглавките на заявките и отговорите на всяка съответстваща заявка.
- Когато браузърът е конфигуриран да приема „бисквитки“, той ги съхранява на диска до датата на изтичане, зададена от setMaxAge.
Защо да използваме JSP бисквитки?
JSP разработчиците разчитат на „бисквитки“, защото HTTP заявките са независими една от друга. Без JSP „бисквитки“, сървърът нямаше да знае, че две заявки принадлежат на един и същ посетител. „Бисквитките“ в JSP решават този проблем с минимално състояние на сървъра.
- Сесия tracцар: Бисквитката JSESSIONID свързва множество преглеждания на страници с една логическа сесия.
- Персонализация: JSP бисквитките могат да съхраняват предпочитания за език, тема или оформление.
- Помощници за удостоверяване: Токените „Запомни ме“ и състоянието на вход често се намират в бисквитки с активирани флагове HttpOnly и Secure.
- Анализ: „Бисквитките“ в JSP записват завърнали се посетители, препращащи потребители и пътища за реализация.
Видове JSP бисквитки
- Постоянна бисквитка: Постоянна JSP бисквитка се съхранява на устройството за времето, зададено със setMaxAge. Тя помага на приложението да запомни предпочитанията и данните за вход след рестартиране на браузъра.
- Непостоянна бисквитка: Непостоянната JSP бисквитка, наричана още сесийна бисквитка, се съхранява само в паметта на браузъра и се премахва, когато потребителят затвори браузъра. Използва се най-вече за краткотрайни сесии. tracцар.
JSP методи за бисквитки
Класът javax.servlet.http.Cookie предоставя следните методи, използвани най-често при работа с JSP бисквитки.
-
публичен невалиден setDomain(String домейн)
Този метод за задаване на JSP бисквитки задава домейна, към който се прилага JSP бисквитката.
-
публичен низ getDomain()
Този метод за получаване на бисквитки от JSP връща домейна, към който се прилага бисквитката от JSP.
-
публична невалидност setMaxAge(int изтичане)
Задава максималното време в секунди преди изтичане на JSP бисквитката. Стойност нула изтрива бисквитката, а отрицателна стойност я прави бисквитка за сесия.
-
публично цяло число getMaxAge()
Връща максималната възраст на JSP бисквитката в секунди.
-
публичен низ getName()
Връща името на JSP бисквитката.
-
публична невалидна стойност на низ (стойност на низ)
Задава стойността, свързана с JSP бисквитката.
-
публичен низ getValue()
Връща стойността, свързана с JSP бисквитката.
-
public void setPath(String път)
Тази „бисквитка“ в JSP метода задава URL пътят, към който се прилага „бисквитката“.
-
публичен низ getPath()
Връща URL пътят, към който се прилага JSP бисквитката.
-
public void setSecure(булев флаг)
Това маркира JSP бисквитката, така че тя да се изпраща само през криптирани HTTPS връзки.
-
публичен невалиден setComment(String cmt)
Описва се предназначението на JSP бисквитката.
-
публичен низ getComment()
Връща коментара, описващ JSP бисквитката.
Как да работим с JSP бисквитки
Работата с JSP бисквитки включва три повтарящи се стъпки. Същият модел се използва за състояние на вход, превключване на теми и пазаруване.ping колички.
- Създайте JSP обекта Cookie, използвайки конструктора Cookie.
- Конфигурирайте атрибутите на „бисквитките“, особено максималната възраст, пътя и флаговете за сигурност.
- Изпратете „бисквитката“ до браузъра чрез HTTP заглавки на отговор, използвайки response.addCookie.
Как да създадете JSP бисквитка
Нова JSP бисквитка се създава чрез създаване на инстанция на javax.servlet.http.Cookie с име и стойност. След това бисквитката се прикачва към обекта response, така че браузърът да я съхрани.
Как да четем JSP бисквитки
При всяка следваща заявка браузърът изпраща съответстващи JSP бисквитки обратно към сървъра. Страницата ги прочита, като извиква request.getCookies, която връща масив от обекти Cookie. След това приложението итерира през масива, търси всяка бисквитка по име и използва нейната стойност.
Как да изтриете JSP бисквитка
За да изтрие JSP бисквитка, сървърът създава нова бисквитка със същото име, задава стойността ѝ на празен низ, извиква setMaxAge с нула и я добавя към отговора. След това браузърът премахва съхранената бисквитка при следващия отговор.
Пример за „бисквитки“ в JSP
В този пример с JSP бисквитки, приложението създава две бисквитки за потребителско име и имейл, поддържа ги активни в продължение на десет часа и след това чете стойностите обратно на втора страница, наречена 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: Два обекта „бисквитки“, потребителско име и имейл, се създават с помощта на request.getParameter, за да се прочетат стойностите, подадени от формуляра.
Code Ред 12 до 13: Методът setMaxAge се извиква с 60, умножено по 60, умножено по 10, което задава времето за живот на всяка JSP бисквитка на десет часа.
Code Ред 16 до 17: Двете „бисквитки“ се прикачват към отговора с response.addCookie. След това браузърът ги изпраща обратно при следващи заявки, а сървърът ги чете, използвайки request.getCookies или request.getParameter за текущата заявка.
Продукция
Когато изпълните горния код, получавате следния изход.
Когато action_cookie.jsp се изпълни, браузърът показва двете полета - потребителско име и имейл. След като потребителят ги попълни и кликне върху „Изпращане“, action_cookie_main.jsp създава съответстващите JSP бисквитки на сървъра, съхранява ги на клиента и показва стойностите, потвърждавайки, че бисквитките са създадени успешно.
Най-добри практики за JSP бисквитки
Съвременните уеб приложения трябва да третират JSP бисквитките като чувствителни към сигурността данни. Следните практики са в съответствие с текущите внедрявания на Servlet 4.x и Servlet 5.x.
- Използвайте само Http: Маркирайте „бисквитките“ за удостоверяване като HttpOnly, така че клиентските скриптове да не могат да ги четат.
- Използвайте Secure: Изпращайте „бисквитки“ само през HTTPS, като извикате setSecure(true).
- Използвайте SameSite: Конфигурирайте атрибута SameSite (Lax или Strict) чрез контейнера или заглавките на отговора, за да намалите фалшифицирането на заявки между сайтове.
- Поддържайте малки стойности: Съхранявайте идентификатор в „бисквитката“ и съхранявайте данните в хранилището от страна на сървъра.
- Задаване на изрично изтичане: Използвайте setMaxAge за предвидимо поведение в различните браузъри.


