Получить значение cookie в java
Я инициализировал Кук, как это в моем JSP,
String timeStamp = new SimpleDateFormat("dd:MM:yyyy_HH:mm:ss:SSS").format(Calendar.getInstance().getTime());
timeStamp = timeStamp + ":" + System.nanoTime();
String loc = "/u/poolla/workspace/FirstServlet/WebContent/WEB-INF/"+timeStamp;
Cookie thecookie = new Cookie("thecookie", loc);
thecookie.setMaxAge(60*60*24);
response.addCookie(thecookie);
таким образом, все созданные куки будут иметь одно и то же имя, но разные значения для разных пользователей времени доступа
Вопрос 1-Решено,
в моем.java я использовал
String fpath = request.getParameter("thecookie").toString();
чтобы получить loc в моем.java-страница, но это отображается null, в чем моя ошибка?
ответ : я нашел здесь правильный способ доступа к cookie
Вопрос 2,
В конце Java-сервлета я хочу деактивировать / убить cookie, который был передан в начале Java-сервлета, и сказать, если они 5 пользователей, использующих систему параллельно, как я узнаю, какой cookie деактивировать для какого пользователя в последнем из моих.Ява?
рассмотрим, например,
User 1 : cookie name `thecookie` value `AAA`
User 2 : cookie name `thecookie` value `BBB`
User 3 : cookie name `thecookie` value `CCC`
User 4 : cookie name `thecookie` value `DDD`
User 5 : cookie name `thecookie` value `EEE`
Теперь, в конце моего.Java servlet я хочу деактивировать cookie со значением CCC, которое было назначено в начале моего.Java без беспокойство другие значения cookie, как это сделать?
3 ответов
вы используете неправильный метод для чтения файлов cookie..
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookie.getName().equals("cookieName")) {
//do something
//value can be retrieved using #cookie.getValue()
}
}
}
использовать это. Нет необходимости обнаруживать cookie для конкретного пользователя, просто деактивируйте его.
Cookie[] cookies = request.getCookies();
int i = 0;
for (Cookie cookie : cookies ) {
Sytem.out.println(cookies[i].getName());
Sytem.out.println(cookies[i].getValue());
i++;
}
готов к использованию универсального метода:
public static Cookie getCookie(HttpServletRequest request, String name) {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookie.getName().equals(name)) {
return cookie;
}
}
}
return null;
}