1 คุกกี้คืออะไร
เบราว์เซอร์และเว็บเซิร์ฟเวอร์สื่อสารโดยใช้โปรโตคอล HTTP เมื่อผู้ใช้ออกคำขอหน้าเว็บเซิร์ฟเวอร์จะตอบกลับแล้วปิดการเชื่อมต่อกับผู้ใช้ ดังนั้นเมื่อมีการส่งคำขอไปยังเว็บเซิร์ฟเวอร์โดยไม่คำนึงว่าจะมีการเยี่ยมชมครั้งแรกเซิร์ฟเวอร์จะถือว่าเป็นครั้งแรก นี่เป็นสิ่งที่ไม่ดีที่สามารถจินตนาการได้ เพื่อสร้างข้อบกพร่องนี้ NetScape ได้พัฒนาคุกกี้ซึ่งเป็นเครื่องมือที่มีประสิทธิภาพในการบันทึกข้อมูลการระบุตัวตนของผู้ใช้บางรายดังนั้นผู้คนจึงตั้งชื่อว่า "คุกกี้หวาน" คุกกี้เป็นวิธีการที่เว็บเซิร์ฟเวอร์เก็บข้อมูลเกี่ยวกับฮาร์ดดิสก์ของผู้เข้าชมผ่านเบราว์เซอร์: NetScape Navigator ใช้ไฟล์ท้องถิ่นที่เรียกว่า cookies.txt เพื่อบันทึกข้อมูลคุกกี้ที่ได้รับจากทุกไซต์ ในขณะที่เบราว์เซอร์คือบันทึกข้อมูลคุกกี้ในไดเรกทอรีที่คล้ายกับ C:/Windows/คุกกี้ เมื่อผู้ใช้เยี่ยมชมไซต์อีกครั้งเซิร์ฟเวอร์จะขอให้เบราว์เซอร์ค้นหาและส่งคืนข้อมูลคุกกี้ที่ส่งก่อนหน้านี้เพื่อระบุผู้ใช้
2 คุณลักษณะของคุกกี้สี่ตัว
Max-Age ระบุอายุการใช้งานของ Ccookie (ในไม่กี่วินาที)! โดยค่าเริ่มต้นค่าของคุกกี้จะมีอยู่ในช่วงเซสชันของเบราว์เซอร์เท่านั้นและค่าเหล่านี้จะหายไปเมื่อผู้ใช้ออกจากเบราว์เซอร์!
เส้นทางระบุหน้าเว็บที่เกี่ยวข้องกับคุกกี้ โดยค่าเริ่มต้นคุกกี้จะเชื่อมโยงกับหน้าเว็บที่สร้างขึ้นเช่นเดียวกับหน้าเว็บในไดเรกทอรีเดียวกับหน้าเว็บและไดเรกทอรีย่อยในไดเรกทอรี
การตั้งค่าโดเมนโดเมนการเข้าถึงตัวอย่างเช่นเซิร์ฟเวอร์ที่อยู่ที่ order.example.com จำเป็นต้องอ่านคุกกี้ที่กำหนดโดย catalog.example.com ที่นี่คุณต้องแนะนำแอตทริบิวต์โดเมน สมมติว่าคุกกี้ที่สร้างขึ้นโดยหน้าเว็บที่ตั้งอยู่ที่ catalog.example.com ตั้งค่าแอตทริบิวต์เส้นทางเป็น "/" และแอตทริบิวต์โดเมนเป็น ".example.com" จากนั้นหน้าเว็บทั้งหมดที่ตั้งอยู่ที่ "catalog.example.com" หากไม่ได้ตั้งค่าโดเมนของคุกกี้ค่าเริ่มต้นของแอตทริบิวต์นี้คือชื่อโฮสต์ของเซิร์ฟเวอร์ที่หน้าเว็บที่สร้างคุกกี้ หมายเหตุ: โดเมนของคุกกี้ไม่สามารถตั้งค่าเป็นโดเมนนอกโดเมนที่เซิร์ฟเวอร์อาศัยอยู่
Seure ระบุว่าค่าของคุกกี้ถูกส่งบนเครือข่ายอย่างไร
3 การดำเนินการคุกกี้ Java
สร้างคุกกี้
// วัตถุคุกกี้ใหม่, คู่คีย์-ค่าคู่คือคุกกี้พารามิเตอร์ = คุกกี้ใหม่ ("คีย์", "ค่าคุกกี้"); หากมูลค่าของคุกกี้มีภาษาจีนต้องมีการเข้ารหัสคุกกี้มิฉะนั้นจะเกิดรหัสที่อ่านไม่ออก ใช้ urlencoder.encode ("ค่าคุกกี้", "UTF-8"); // ตั้งค่าเวลาการอยู่รอดสูงสุดของคุกกี้ในไม่กี่วินาทีถ้าจำนวนลบคือกระบวนการเบราว์เซอร์ปิดคุกกี้เบราว์เซอร์หายไปคุกกี้. setMaxage (*24*60*60); // หนึ่งวัน // เพิ่มคุกกี้ลงในการตอบสนองเพื่อให้มีผลตอบสนองต่อการตอบสนองต่อการดูแล (คุกกี้); // หลังจาก addcookie ถ้าคุกกี้ที่มีชื่อเดียวกันมีอยู่แล้วจะเขียนทับคุกกี้เก่าล่าสุดหมายเหตุ: ใน struts คุณสามารถใช้ servletactionContext.getResponse () เพื่อรับวัตถุ respone
อ่านคุกกี้
การอ่านคุกกี้สามารถรับคุกกี้ทั้งหมดได้จากคำขอแล้ววนซ้ำเป็นวง
ใน struts คุณสามารถใช้ servletactionContext.getRequest () เพื่อรับวัตถุคำขอ
// รับคุกกี้จากคำขอและคุณจะได้รับคุกกี้คุกกี้ [] คุกกี้ = request.getCookies (); // จากนั้นวนซ้ำถ้า (คุกกี้! = null && cookies.length> 0) {// ถ้าคุณยังไม่ได้ตั้งค่าคุกกี้มันจะส่งคืน null สำหรับ (คุกกี้คุกกี้: คุกกี้) {... }} ลบคุกกี้
หากคุณลบคุกกี้คุณจะต้องตั้งค่าอายุการใช้งานของคุกกี้เป็น 0
คุกกี้ [] คุกกี้ = request.getCookies (); if (คุกกี้! = null && cookies.length> 0) {สำหรับ (คุกกี้คุกกี้: คุกกี้) {ชื่อสตริง = cookie.getName (); // ค้นหาคุกกี้ที่ต้องถูกลบถ้า (name.compareto ("target-key") == 0) {// ตั้งค่าอายุการใช้งานเป็น 0 cookie.setMaxage (0); // ตั้งกลับไปที่ Response.addcookie (คุกกี้); -ใช้วิธีการตั้งค่าของคุกกี้ 4 ตัว:
คุกกี้ปกติสามารถแชร์ได้ในแอพเดียวเท่านั้นเช่นคุกกี้สามารถรับได้โดยแอพที่สร้างขึ้นเท่านั้น
1. วิธีการสามารถแชร์ได้ภายในแอปพลิเคชันเซิร์ฟเวอร์เดียวกัน: ตั้งค่า cookie.setpath ("/");
มีสองแอปพลิเคชั่นภายใต้ Tomcat/Webapp ดั้งเดิม: WebApp_a และ WebApp_b
1) ปรากฎว่าไม่สามารถรับคุกกี้ภายใต้ WebApp_A ได้ภายใต้ WebApp_B เส้นทางคือเส้นทางของแอปพลิเคชันที่สร้างคุกกี้โดยค่าเริ่มต้น
2) หากคุณตั้งค่าคุกกี้ภายใต้ webapp_a ให้เพิ่ม cookie.setpath ("/"); หรือ cookie.setpath ("/webapp_b/");
คุณสามารถรับคุกกี้ที่กำหนดโดย CAS ภายใต้ webapp_b
3) พารามิเตอร์ที่นี่สัมพันธ์กับไดเรกทอรีรูทของโฟลเดอร์แอปพลิเคชันที่จัดเก็บโดยแอปพลิเคชันเซิร์ฟเวอร์ (เช่น WebApp ภายใต้ Tomcat) ดังนั้น Cookie.SetPath ("/"); หลังจากนั้นคุกกี้สามารถแชร์ได้ในแอปพลิเคชันทั้งหมดภายใต้โฟลเดอร์ WebApp และ Cookie.setPath ("/WebApp_b/");
หมายความว่าคุกกี้ที่ตั้งค่าโดยแอปพลิเคชัน CAS สามารถรับได้ภายใต้แอปพลิเคชัน WebApp_B เท่านั้นและแม้แต่แอปพลิเคชัน WebApp_A ที่สร้างคุกกี้นี้ไม่สามารถใช้งานได้
4) เมื่อตั้งค่า cookie.setpath ("/webapp_b/jsp") หรือ cookie.setpath ("/webapp_b/jsp/") คุกกี้สามารถรับได้ภายใต้ webapp_b/jsp แต่ไม่สามารถรับคุกกี้นอกโฟลเดอร์ JSP ได้
5) ตั้งค่า cookie.setpath ("/webapp_b"); หมายความว่าคุกกี้สามารถใช้งานได้ภายใต้ WebApp_B เท่านั้นดังนั้นจึงไม่สามารถรับคุกกี้ได้ภายใต้ WebApp_A ที่สร้างคุกกี้
6) เมื่อมีคุกกี้หลายตัว SetPath ("xxx"); งบคนสุดท้ายจะได้รับชัยชนะ
5 Cookie.SetDomain วิธีการออกแบบการแบ่งปันการแชร์ข้ามโดเมน
โดเมนที่ Machine A ตั้งอยู่: home.langchao.com, A มีแอปพลิเคชัน webapp_a
โดเมนที่เครื่อง B ตั้งอยู่: jszx.com, b มีแอปพลิเคชัน webapp_b
1) เมื่อตั้งค่าคุกกี้ภายใต้ webapp_a ให้เพิ่ม cookie.setdomain (". jszx.com"); เพื่อให้คุณได้รับคุกกี้ภายใต้ WebApp_B
2) เมื่อป้อน URL เพื่อเข้าถึง WebApp_B คุณต้องป้อนชื่อโดเมนเพื่อแก้ไข ตัวอย่างเช่นเมื่อเข้าสู่: http://lc-bsp.jszx.com:8080/webapp_b ในเครื่อง A คุณสามารถตั้งค่าคุกกี้โดย Webapp_a บนไคลเอนต์ในขณะที่ป้อน: http: // localhost: 8080/webapp_b คุณไม่สามารถรับคุกกี้ได้
3) COOKIE.SETDOMAIN (". JSZX.com"); สามารถแชร์ได้ภายใต้ Home.langchao.com เริ่มต้น
ความคิดโบราณข้างต้นพูดคุยเกี่ยวกับการใช้คุกกี้ใน Java เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่ามันจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น