Приведу сразу часть кода из своего файла по управлению кукки:
/**
* Здесь я создаю кукки, который создает URL для элемента гиперссылка.
*/
public void createRegionPathCookie(Integer RegionId) {
HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
Cookie cookie = new Cookie("RegionPath", "/w-info/faces/info/region.jsp?subjectid=0&id=" + RegionId + "&sort=0");
cookie.setPath("/w-info/");
cookie.setMaxAge(31536000);
cookie.setComment("Cookie with Path to remembered Region");
httpServletResponse.addCookie(cookie);
}
/**
* Здесь я создаю кукки, который добавляет ID выбранного пользователем
* региона, который в последующем используется в предыдушем коде.
*/
public void createRegionIdCookie(Integer RegionId) {
HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
Cookie cookie = new Cookie("RegionId", RegionId.toString());
cookie.setPath("/w-info/");
cookie.setMaxAge(31536000);
cookie.setComment("Cookie with id of Region");
httpServletResponse.addCookie(cookie);
}
/**
* А вот таким образом я беру значение кукки созданного в первом коде.
*/
public String getRegionPathCookie() {
String regionPath = "";
HttpServletRequest httpServletRequest = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
Cookie[] cookies = httpServletRequest.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().equalsIgnoreCase("RegionPath")) {
regionPath = cookies[i].getValue();
}
}
}
return regionPath;
}
Для того, чтобы удалить кукки, нужно просто поставить ему setMaxAge(0);
Самое интересное, что я заметил, а затем и прочитал в другом месте, дак это то, что только что созданные кукки не могут быть использованы на этой же странице. Необходимо заставить пользователя обновить страницу, либо придумать что-то другое. Я это "другое" уже придумал и, скорее всего, позже выложу. Проблема заключалась в удалении кукки с ID и MD5 строкой пользователей, при нажатии кнопки выход, необходимо было скрыть одну панельку (приветствие юзера) и показать другую (инфо с регистраицей и входом), но отображение этих панелей как раз и зависело от состояния кукки.
Комментариев нет:
Отправить комментарий