ก่อนอื่นให้เข้าใจว่าคุกกี้คืออะไร:
คุกกี้เป็นข้อมูลที่มีอยู่ในฮาร์ดไดรฟ์ของคุณ แต่ข้อมูลเหล่านี้มีความพิเศษมากและสามารถส่งไปยังเบราว์เซอร์เพื่อช่วยเหลือการจัดเก็บข้อมูลโดยเว็บแอปพลิเคชัน นอกจากนี้เรายังสามารถอ่านคุกกี้ของเบราว์เซอร์
โดยทั่วไปเว็บแอปพลิเคชันจะจัดเก็บข้อมูลผู้ใช้และข้อมูลขนาดเล็กและชั่วคราวอื่น ๆ ในคุกกี้เท่านั้น หากปริมาณข้อมูลมีขนาดใหญ่ไม่เหมาะสำหรับการจัดเก็บไว้ในคุกกี้
โดยทั่วไปเบราว์เซอร์จะให้คุกกี้ 40 คุกกี้เพื่อจัดเก็บข้อมูลสำหรับแต่ละเว็บแอปพลิเคชันและขนาดของคุกกี้แต่ละตัวไม่เกิน 4K (ฉันได้ยินมาว่าเบราว์เซอร์บางตัวสามารถเก็บข้อมูลขนาดใหญ่ได้ แต่โดยทั่วไปเราไม่ได้เก็บข้อมูลขนาดใหญ่ดังกล่าวเนื่องจากประสิทธิภาพการสกัดข้อมูลไม่สูง
หลังจากพูดเรื่องไร้สาระมากในที่สุดประเด็นก็มาถึง
Java เข้าถึงข้อมูลคุกกี้ในคำขอเบราว์เซอร์ผ่านอินเตอร์เฟส httpservletRequest (ให้ฉันเข้าใจเรื่องราวทั้งหมดของคุกกี้ที่นี่และรหัสจะได้รับในภายหลัง)
คุกกี้แต่ละตัวมีสองแอตทริบิวต์: คีย์และค่า (ไม่มีสตริงรูปแบบเฉพาะดังนั้นคุณสามารถจัดเก็บข้อมูลใน DIY แต่คุณควรให้ความสนใจกับปัญหาการเข้ารหัส URL ปัญหาการเข้ารหัสจะถูกกล่าวถึงพร้อมกับรหัสในภายหลัง)
หากเราต้องการจัดเก็บคุกกี้ใหม่เราสามารถใหม่อินสแตนซ์คุกกี้และส่งไปยังเบราว์เซอร์ผ่าน httpservletrsponse แล้วเก็บไว้ในพื้นที่
นี่คือคลาสทั่วไปสำหรับคุกกี้
/ * * คลาสนี้สามารถแยกคุกกี้จากคำขอเบราว์เซอร์และดำเนินการที่เกี่ยวข้องกับคุกกี้ * */คลาสสาธารณะ CookiesUtil ขยาย Basecontroller {/** * รับคุกกี้ตามชื่อ * * @param คำขอ * @param ชื่อคุกกี้ * @return */คุกกี้ ReadCookieMap (คำขอ); if (cookiemap.containskey (ชื่อ)) {คุกกี้คุกกี้ = (คุกกี้) cookiemap.get (ชื่อ); กลับมาคุกกี้; } else {return null; }} / ** * ห่อหุ้มคุกกี้ลงในแผนที่ * * @param Request * @return * / แผนที่คงที่ส่วนตัว <สตริง, คุกกี้> ReadCookieMap (คำขอ httpservletRequest) {แผนที่ <สตริง, คุกกี้> cookiemap = new hashmap <สตริง, คุกกี้> (); คุกกี้ [] คุกกี้ = request.getCookies (); if (null! = คุกกี้) {สำหรับ (คุกกี้คุกกี้: คุกกี้) {cookiemap.put (cookie.getName (), คุกกี้); }} ส่งคืน cookiemap; } / ** * บันทึกคุกกี้ * * @param Response * คำขอ servlet * @param value * บันทึกค่า * @author jxf * / สาธารณะ httpservletResponse setcookie (httpservletResponse, ชื่อสตริง, ค่าสตริง, เวลา int) // การแชร์การประยุกต์ใช้แบบหลายแอปพลิเคชัน SetSetPath ("/"); // หากค่าของคุกกี้มีภาษาจีนต้องมีการเข้ารหัสคุกกี้มิฉะนั้นจะมีการสร้างรหัสที่อ่านไม่ออก ลอง {urlencoder.encode (ค่า, "UTF-8"); } catch (unsupportencodingexception e) {e.printstacktrace (); } cookie.setMaxage (เวลา); // เพิ่มคุกกี้ลงในการตอบสนองเพื่อให้มีผลตอบสนองต่อการตอบสนอง Addcookie (คุกกี้); // หลังจาก addcookie หากคุกกี้ที่มีชื่อเดียวกันมีอยู่แล้วจะเขียนทับการตอบกลับของคุกกี้เก่าล่าสุด -ด้วยคลาสทั่วไปข้างต้นเราสามารถอ่านและสร้างคุกกี้ใหม่ ที่นี่ฉันอยากจะพูดถึงสิ่งหนึ่ง: ถ้าชื่อของคุกกี้ใหม่มีอยู่แล้วมันจะไม่ถูกเพิ่มซ้ำ ๆ และคุกกี้ก่อนหน้านี้จะถูกเขียนทับ
เบราว์เซอร์ดูคุกกี้ที่ร้องขอและคุกกี้ที่ส่งคืนได้อย่างไร ใช้ Google เบราว์เซอร์สำหรับโง่
จากนั้นเราอาจต้องลบคุกกี้
/** * <p> ลบคุกกี้ที่ไม่ถูกต้อง </p> * <p> ไม่ถูกต้องหรือไม่ 1 ล้าสมัย 2. ไม่ได้เผยแพร่ </p> * @param Request * @param Response * @param List */ Private Void DelectCookieByName (คำขอ httpservletRequest, httpservletResponse การตอบสนอง, string deletekey) cookiemap.keyset ()) {ถ้า (key == deletekey && key.equals (deletekey)) {คุกกี้คุกกี้ = cookiemap.get (คีย์); 21 cookie.setMaxage (0); // ตั้งเวลาความถูกต้องของคุกกี้เป็น 0 cookie.setpath ("/"); // อย่าตั้งค่าการตอบสนองเส้นทางการจัดเก็บข้อมูล Addcookie (คุกกี้); -โปรดทราบว่าการลบคุกกี้จะต้องมีทั้งพารามิเตอร์เวลาและเส้นทาง PATH มิฉะนั้นเบราว์เซอร์บางตัวไม่สามารถลบได้
ข้างต้นคือการรวบรวมข้อมูลของ Java ในการอ่านและเขียนถึงคุกกี้เบราว์เซอร์ เราจะยังคงเพิ่มข้อมูลที่เกี่ยวข้องในอนาคต ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!