Во -первых, давайте поймем, что такое cookie:
Файлы cookie на самом деле являются данными, которые существуют на вашем жестком диске, но эти данные очень особенные и могут быть отправлены в браузер только для хранения веб -приложений. Мы также можем прочитать печенье браузера.
Веб -приложения, как правило, хранят только некоторую информацию пользователя и другие небольшие и временные данные в файлах cookie. Если объем данных большой, он не подходит для его хранения в файлах cookie.
Как правило, браузеры дадут им 40 файлов cookie для хранения данных для каждого веб -приложения, а размер каждого файла cookie не превышает 4K (я слышал, что некоторые браузеры могут хранить большие данные, но мы, как правило, не храним такие большие данные, потому что эффективность извлечения данных не высока, что влияет на производительность)
Сказав так много чепухи, наконец -то наступила суть
Java обращается к данным файлов cookie в запросах браузера через интерфейс httpservlectrequest (позвольте мне понять всю историю файлов cookie здесь, и код будет предоставлен позже)
Каждый cookie имеет два атрибута: ключ и значение (нет конкретной строки формата, поэтому вы можете хранить данные в DIY, но вы должны обратить внимание на вопросы кодирования URL. Вопросы кодирования будут обсуждаться вместе с кодом позже)
Если нам нужно хранить новые файлы cookie, мы можем новичок экземпляр Cookie и отправить его в браузер через httpservletrsonse, а затем хранить его на локальном уровне
Вот общий класс для файлов cookie
/ * * Этот класс может извлечь файлы cookie из запроса браузера и выполнять соответствующие операции на файлах cookie * */public class cookiesutil extends basecontroller {/** * Получить файлы cookie по имени * * @param запрос * @param name * name * @return */public statice cookie getcookiebyname (httpserverververque Readkookiemap (запрос); if (cookiemap.containskey (name)) {cookie cookie = (cookie) cookiemap.get (name); вернуть cookie; } else {return null; }} / ** * Инкапсулировать файлы cookie в карту * * @param запрос * @return * / private static map <string, cookie> readcookiemap (httpservlectrequest) {map <string, cookie> cookiemap = new hashmap <String, cookie> (); Cookie [] cookie = request.getcookies (); if (null! = cookie) {for (cookie cookie: cookie) {cookiemap.put (cookie.getName (), cookie); }} вернуть cookieMap; } / ** * Сохранить файлы cookie * * @param response * запрос сервлета * @param value * Сохранить значение * @author jxf * / public static httpservletresponse setcookie (httpservletresponse, ответ на строковое значение, int time) {// Новый объект cookie, пара клавиш, пара-параметра cookie cookie = new cookie cookie (name, value); // Multi-Dipplication совместное использование cookie.setpath ("/"); // Если ценность печенья содержит китайский, необходимо кодировать печенье, в противном случае будет создан искаженный код. try {urlencoder.encode (значение, "UTF-8"); } catch (unsupportEncodingexception e) {e.printstacktrace (); } cookie.setMaxage (время); // Добавить файл cookie в ответ, чтобы он вступил в силу. Addcookie (cookie); // после addcookie, если печенье с тем же именем уже существует, последний перезаписывает ответ старого обратного ответа cookie; }С приведенным выше общим классом мы можем читать и создать новые файлы cookie. Здесь я хотел бы упомянуть одну вещь: если название нового cookie уже существует, оно не будет добавлено неоднократно, и предыдущее печенье будет перезаписано.
Как браузер просматривает запрошенные файлы cookie и возвращенные файлы cookie? Возьмите браузер Google для глупости
Тогда нам может потребоваться удалить куки
/** * <p> Удалить недействительные файлы cookie </p> * <p> Недейть? 1. Устаревшая 2. Не опубликовано </ p> * @param запрос * @param response * @param list */ private void delectcookiebyname (httpservletrequest, httpservletresponse response, string deletekey) бросает nullpointerexception {12 map <string, cookie> cookiemap = readcookiemap (string key: string); cookiemap.keyset ()) {if (key == deletekey && key.equals (deletekey)) {cookie cookie = cookiemap.get (key); 21 cookie.setMaxage (0); // Установите время достоверности cookie на 0 cookie.setPath ("/"); // Не устанавливайте ответ пути хранения. Addcookie (cookie); }}}Обратите внимание, что удаление файлов cookie должно иметь как параметры времени, так и параметров пути, в противном случае некоторые браузеры не могут их удалить.
Выше приведено набор данных Java для чтения и записи в файлы cookie браузера. Мы будем продолжать добавлять соответствующую информацию в будущем. Спасибо за поддержку этого сайта!