Junior
Какви методи са предвидени за работа с бисквитки в сервлетите?
sobes.tech AI
Отговор от AI
В сервлетите се използват методите на обектите HttpServletRequest (за получаване на бисквитки) и HttpServletResponse (за изпращане на бисквитки).
Получаване на бисквитки от заявката:
Cookie[] getCookies(): Връща масив от обектиCookie, получени в заявката. Ако няма бисквитки, връщаnull.
Изпращане на бисквитки в отговора:
void addCookie(Cookie cookie): Добавя посочения обектCookieкъм отговора.
Класът Cookie съдържа следните основни методи:
String getName(): Връща името на бисквитката.String getValue(): Връща стойността на бисквитката.void setValue(String newValue): Задава нова стойност за бисквитката.String getPath(): Връща пътя, на който е достъпна бисквитката.void setPath(String uri): Задава пътя за бисквитката.String getDomain(): Връща домейна, за който е валидна бисквитката.void setDomain(String pattern): Задава домейна за бисквитката.int getMaxAge(): Връща максималното време на живот (в секунди) на бисквитката. Отрицателна стойност означава, че бисквитката съществува до затваряне на браузъра. 0 означава изтриване на бисквитката.void setMaxAge(int expiry): Задава максималното време на живот на бисквитката.boolean getSecure(): Връщаtrue, ако бисквитката трябва да се изпраща само по сигурна (HTTPS) връзка.void setSecure(boolean flag): Задава флага за сигурна връзка за бисквитката.int getVersion(): Връща версията на протокола на бисквитката.void setVersion(int v): Задава версията на протокола на бисквитката.boolean isHttpOnly(): Връщаtrue, ако бисквитката е достъпна само чрез HTTP заявки (не чрез JavaScript).void setHttpOnly(boolean isHttpOnly): Задава флага HttpOnly за бисквитката.
Пример за получаване и задаване на бисквитки:
// Получаване на бисквитки от заявката
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("userName".equals(cookie.getName())) {
String userName = cookie.getValue();
// Използвайте стойността на бисквитката
break;
}
}
}
// Задаване на нова бисквитка в отговора
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Продължителност 30 дни
response.addCookie(newCookie);