Pertama, mari kita pahami apa cookie itu:
Cookie sebenarnya adalah data yang ada di hard drive Anda, tetapi data ini sangat istimewa dan hanya dapat dikirimkan ke browser untuk penyimpanan bantuan oleh aplikasi web. Kami juga dapat membaca cookie browser.
Aplikasi web umumnya hanya menyimpan beberapa informasi pengguna dan data kecil dan sementara lainnya dalam cookie. Jika volume data besar, tidak cocok untuk menyimpannya di cookie.
Secara umum, browser akan memberi mereka 40 cookie untuk menyimpan data untuk setiap aplikasi web, dan ukuran masing -masing cookie tidak melebihi 4K (saya mendengar bahwa beberapa browser dapat menyimpan data besar, tetapi kami umumnya tidak menyimpan data besar seperti itu karena efisiensi ekstraksi data tidak tinggi, yang mempengaruhi kinerja)
Setelah mengatakan begitu banyak omong kosong, intinya akhirnya datang
Java Mengakses Data Cookie di Permintaan Browser Melalui HttpservletRequest Interface (Izinkan saya memahami keseluruhan kisah cookie di sini, dan kode akan diberikan nanti)
Setiap cookie memiliki dua atribut: kunci dan nilai (tidak ada string format khusus, sehingga Anda dapat menyimpan data di DIY, tetapi Anda harus memperhatikan masalah pengkodean URL. Masalah pengkodean akan dibahas bersama dengan kode nanti)
Jika kita perlu menyimpan cookie baru, kita bisa membuat cookie baru dan mengirimkannya ke browser melalui httpservletrsponse, dan kemudian menyimpannya secara lokal
Ini kelas umum untuk cookie
/* * This class can extract cookies from the browser request and perform related operations on cookies* */public class CookiesUtil extends BaseController { /** * Get cookies by name * * @param request * @param name * cookie name* @return */ public static Cookie getCookieByName(HttpServletRequest request, String name) { Map<String, Cookie> cookieMap = ReadCookiemap (permintaan); if (cookiemap.containskey (name)) {cookie cookie = (cookie) cookiemap.get (name); Kembali Cookie; } else {return null; }} / ** * Encapsulate cookie ke dalam peta * * @param permintaan * @return * / peta statis pribadi <string, cookie> readCookiemap (permintaan httpservletrequest) {peta <string, cookie> cookiemap = new hashMap <string, cookie> (); Cookie [] cookies = request.getCookies (); if (null! = cookie) {for (cookie cookie: cookie) {cookiemap.put (cookie.getname (), cookie); }} return cookiemap; } / ** * Simpan cookie * * @param respons * Permintaan servlet * @param nilai * Simpan nilai * @author jxf * / public static httpservletResponse setCookie (httpservletResponse response, name string, nilai string, waktu) {// objek cookie new cookie, cookie new cookie; // multi-application berbagi cookie.setpath ("/"); // Jika nilai cookie berisi Cina, cookie perlu dikodekan, jika tidak kode yang kacau akan dihasilkan. coba {urlencoder.encode (nilai, "UTF-8"); } catch (UnsupportedEncodingException e) {e.printstacktrace (); } cookie.setmaxage (waktu); // Tambahkan cookie ke respons untuk membuat EFECK EFECK response.addcookie (cookie); // Setelah addCookie, jika cookie dengan nama yang sama sudah ada, yang terbaru menimpa respons pengembalian cookie lama; }Dengan kelas umum di atas, kita dapat membaca dan membuat cookie baru. Di sini saya ingin menyebutkan satu hal: Jika nama cookie baru sudah ada, itu tidak akan ditambahkan berulang kali, dan cookie sebelumnya akan ditimpa.
Bagaimana browser melihat cookie yang diminta dan cookie yang dikembalikan? Ambil browser google untuk orang yang konyol
Maka kita mungkin perlu menghapus cookie
/** * <p> Hapus cookie tidak valid </p> * <p> Tidak valid? 1. Obsolete 2. Not published</p> * @param request * @param response * @param list */ private void delectCookieByName(HttpServletRequest request, HttpServletResponse response,String deleteKey) throws NullPointerException {12 Map<String, Cookie> cookieMap = ReadCookieMap(request);17 for (String key : cookiemap.keyset ()) {if (key == deletey && key.equals (deleteKey)) {cookie cookie = cookiemap.get (key); 21 cookie.setmaxage (0); // Atur waktu validitas cookie ke 0 cookie.setpath ("/"); // Jangan atur response jalur penyimpanan.addcookie (cookie); }}}Perhatikan bahwa menghapus cookie harus memiliki parameter waktu dan jalur, jika tidak beberapa browser tidak dapat menghapusnya.
Di atas adalah kumpulan data Java untuk dibaca dan menulis ke cookie browser. Kami akan terus menambahkan informasi yang relevan di masa mendatang. Terima kasih atas dukungan Anda untuk situs ini!