Last updated
Last updated
Бисквитките са текстови файлове, съхранявани на компютъра на клиента, съдържащи разнообразна информации с цел подпомагане на комуникацията между клиента и сървъра. Java сървлетите са проектирани да поддържат HTTP-бисквитки. За идентифициране на вече регистриран потребител например може да се осъществи следния процес в три стъпки:
сървърът изпраща набор от бисквитки на браузъра. Например име, възраст, или идентификационен номер и т.н.
Браузърът съхранява тази информация на локалната машина за бъдеща употреба.
Когато следващия път браузърът изпраща заявка за уеб сървъра, той изпраща също и тези бисквитки с информация към сървъра, който от своя страна използва таз информация за идентифициране на потребителя.
Анатомия на бисквитките
Cookies обикновено се изпращат с HTTP хедъра (въпреки че JavaScript също може да изпрати бисквитка директно на един браузър). Сървлет, който създава бисквитка, може да изпрати хедърите по следния начин:
Ако браузърът е конфигуриран да съхранява бисквитки, то тогава тази информация ще се запази до времето на изтичане на валидността. Ако потребителят задава адреси в областта на указания в параметъра “path” домейн, браузърът за всяка страница, която съответства на пътя и домейна на бисквитката, ще я изпраща до сървъра. Хедърите на браузъра може да изглеждат по следния начин:
След което сървлетът ще имат достъп до бисквитката чрез метода request.getCookies(), който връща масив от Cookie обекти.
Методи на сървлета за работа с бисквитки са:
public void setDomain(String pattern)
– определя домейна, за който ще се прилага бисквитката;
public String getDomain()
- получава домейна, за който ще се прилага бисквитката;
public void setMaxAge(int expiry)
- определя колко време ( в секунди), трябва да се изчака, преди да изтече бисквитката. Ако не се зададе, валидността на бисквитката ще изтече в рамките на текущата сесия.
public int getMaxAge()
- връща максималното време за валидност на бисквитката;
public String getName()
- връща името на бисквитката. Името не може да се променя след създаването.
public void setValue(String newValue)
- определя стойността, свързана с бисквитката;
public String getValue()
- получава стойност, свързана с бисквитката;
public void setPath(String uri)
- определя пътя, към които се прилага тази бисквитка. Ако не се укаже пътя, бисквитката се връща за всички URL адреси, разположени в директорията на текущото URL, както и всички поддиректории;
public String getPath()
- получава пътя, към които се прилага тази бисквитка;
public void setSecure(boolean flag)
- определя булева стойност, показваща дали бисквитката трябва да бъде изпращана само чрез криптирани ( т.е. SSL ) връзки;
public void setComment(String purpose)
- определя коментар, който описва целта на бисквитка. Коментарът е полезен, ако браузъра трябва да покаже бисквитката на потребителя.
public String getComment()
- връща коментар, описващ целите на конкретната бисквитка, или нула, ако бисквитката няма никакъв коментар.
Създаване на бисквитка със сървлет
Стойността и името на бисквитката не може да съдържат интервали или някои от следните символи - []()=," / ? @ : ;