1. ما هو ملف تعريف الارتباط؟ تعليقات مستخدمي الإنترنت بايدو
ببساطة ، ملف تعريف الارتباط هو جزء من المعلومات المخزنة مؤقتًا على جهاز الكمبيوتر الخاص بك بواسطة الخادم حتى يتمكن الخادم من استخدامه لتحديد جهاز الكمبيوتر الخاص بك. عندما تقوم بتصفح موقع ويب ، سيرسل خادم الويب أولاً كمية صغيرة من المعلومات لوضعها على جهاز الكمبيوتر الخاص بك. عند زيارة الموقع نفسه في المرة القادمة ، سيقوم خادم الويب أولاً بالتحقق مما إذا كان هناك أي معلومات ملف تعريف الارتباط التي تركتها في المرة الأخيرة. إذا كان الأمر كذلك ، فسيتم الحكم على المستخدم بناءً على المحتوى الموجود في ملف تعريف الارتباط وإرسال محتوى محدد لصفحة الويب.
2. أين ملفات تعريف الارتباط؟
3. هل يمكن حذف ملفات تعريف الارتباط؟
4. مبدأ تنفيذ ملفات تعريف الارتباط
في المرة الأولى التي أطلب فيها من المستعرض ، في متجر ملفات تعريف الارتباط في المتصفح ، لا توجد ملفات تعريف الارتباط ،
الزيارة الأولى لا تحتوي على ملفات تعريف الارتباط. يضيف المتصفح رأس طلب ملف تعريف الارتباط إلى رسالة طلب HTTP لتمرير ملف تعريف الارتباط إلى خادم الويب. سيقوم المتصفح بتخزين جزء المعلومات من ملف تعريف الارتباط في شكل أزواج "الاسم/القيمة" (أزواج القيمة). في المرة التالية التي تصل فيها ، يقوم خادم الويب بإضافة رأس استجابة Set-Cookie إلى رسالة استجابة HTTP لإرسال معلومات ملفات تعريف الارتباط إلى المتصفح.
دعونا نلقي نظرة على ملفات تعريف الارتباط بالواقع
قم بإنشاء ملف تعريف الارتباط.
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" session = "false" ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3. ملف تعريف الارتباط ("الاسم" ، "wyf") ؛ reponse.addcookie (ملف تعريف الارتباط) ؛ ٪> </body> </html>نصل أولاً إلى ملف cookie.jsp ، أدخله في أي
http: // localhost: 8080/day01/cookie.jsp
في رأس الطلب ، يمكنك أن ترى أن الزيارة الأولى لا تحمل ملفات تعريف الارتباط.
في رأس الاستجابة ، يتم إرساله مرة أخرى من خلال cookie set وحفظه في متجر ملفات تعريف الارتباط المحلي للمتصفح
نصل إلى ملف cook.jsp للمرة الثانية لمعرفة ما إذا كان هناك أي تغيير
في رأس الطلب ، يمكنك أن ترى أن الوصول هو طلب يحمل ملفات تعريف الارتباط من منطقة تخزين ملفات تعريف الارتباط المحلية في المتصفح.
ما يلي هو رأس الاستجابة:
دعنا نستخدم رسم بياني تفاعلي لفهم آلية ملفات تعريف الارتباط:
دعونا نلقي نظرة على خلق واكتساب ملفات تعريف الارتباط
الكود في ملف تعريف الارتباط. إذا كان الطلب يحتوي على ملف تعريف ارتباط ، فسوف يخرج زوجًا من قيمة مفاتيح ملف تعريف الارتباط (قيمة الاسم)
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" session = "false" ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3. request.getCoOkies () ؛ if (cookies! = null && cookies.length> 0) {for (ملفات تعريف الارتباط: ملفات تعريف الارتباط) {out.print (cookie.getName ()+": ملف تعريف الارتباط ("الاسم" ، "wyf") ؛ reponse.addcookie (ملف تعريف الارتباط) ؛} ٪> </body> </html>الزيارة الأولى
الزيارة الثانية
العملية أعلاه هي أننا بحاجة إلى إغلاق المتصفح مرة أخرى. لماذا نخطئ؟
لأنه افتراضيًا ، فإن ملف تعريف الارتباط هو ملف تعريف ارتباط على مستوى الجلسة ، يتم تخزينه في نواة المتصفح ، ويتم حذف المستخدم بعد الخروج من المتصفح. إذا كنت تريد أن يقوم المتصفح بتخزين ملف تعريف الارتباط على القرص ، فأنت بحاجة إلى استخدام MAXAGE ، وهو في ثوانٍ
دعونا نلقي نظرة على ملفات تعريف الارتباط المستمرة
<٪ ملفات تعريف الارتباط [] ملفات تعريف الارتباط = request.getCoowies () ؛ if (ملفات تعريف الارتباط! = null && cookies.length> 0) {for (ملفات تعريف الارتباط: ملفات تعريف الارتباط) {out.print (cookie.getName ()+": ملف تعريف الارتباط ("الاسم" ، "wyf") ؛ ملف تعريف الارتباطcookie.setMaxage (30) ؛ تم تعيينه على 30 ثانية ، لذلك لن ألتقط لقطة شاشة هنا. فقط قل أنه تحت اسمك. إذا لم يكن لديك ملفات تعريف الارتباط لأول مرة ، فيمكنك إنشاء ملفات تعريف الارتباط للمرة الثانية. إذا لم يكن لديك ملفات تعريف الارتباط للمرة الثانية ، فيمكنك إغلاق المتصفح والوصول في غضون 30 ثانية. لا يزال بإمكانك المطالبة بملفات تعريف الارتباط لزوج القيمة الرئيسية ، بدلاً من المطالبة السابقة ، ليس لديك ملفات تعريف الارتباط لملفات تعريف الارتباط الخاصة بالرسوم السابقة. ليس لديك ملفات تعريف الارتباط لملفات تعريف الارتباط للواحد السابق.
تسجيل الدخول التلقائي
login.jsp
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! "http://www.w3. type = "text" name = "name"/> <input type = "submit" value = "sumit" // </form> </body> </html>
النجاح
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" session = "false" ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3. المعلومات الموجودة في ملف تعريف الارتباط ، وتعيين وقت سلسلة ملفات تعريف الارتباط = request.getParameter ("name") ؛ if (name! = null &&! name.trim (). يساوي ("")) ملف تعريف الارتباط وقراءة معلومات المستخدم من ملف تعريف الارتباط. إذا كان هناك ، فقم بطباعة ملفات تعريف الارتباط للرسالة الترحيبية [] ملفات تعريف الارتباط = request.getCoOkies () ؛ if (ملفات تعريف الارتباط! = null && cookies.length> 0) {for (ملفات تعريف الارتباط: ملفات تعريف الارتباط) {String cookiename = cookie.getName () ؛ if ("namecookie" .equals (cookiename)) { ! = null &&! name.trim (). يساوي ("")) {out.print ("hello" + name) ؛} {// إذا لم تكن هناك معلمات طلب ولا ملفات تعريف الارتباط ، إعادة التوجيه إلى login.jspresponse.sendRedirec في المرة الأولى التي تزور فيها http: // localhost: 8080/day01/login.jsp ، أدخل قيمة المعلمة الاسم وأرسلها. في Success.jsp ، احصل أولاً على قيمة اسم المعلمة المقدمة. إذا لم يكن فارغًا ، فقم بتعيين ملف تعريف ارتباط مباشرة ، وحفظ قيمة اسم المعلمة ، ثم إخراج قيمة المعلمة الاسم في الصفحة. عند زيارة المرة الثانية ، يمكنك إدخال http: // localhost: 8080/day01/success.jsp ،
منذ هذا الوقت ، نحمل قيمة اسم المعلمة ، نحتاج فقط إلى الحصول على القيمة من قيمة ملف تعريف الارتباط ثم عرض الإخراج
عرض تاريخ التسوق الأخير
books.jsp
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! "http://www.w3. href = "book.jsp؟ book = javaweb"> javaweb </a> <a href = "book.jsp؟ book = java"> java </a> <a href = "book.jsp؟ book = oracle"> oracle </a> href = "book.jsp؟ book = javaScript"> javaScript </a> <a href = "book.jsp؟ book = Android"> Android </a> <a href = "book.jsp؟ book = jbpm "> jbpm </a> <br> <br> كتاب ، إذا كان Cookiename هو atguigu_book_ ، فإنه يلبي الشروط إذا (ملفات تعريف الارتباط! = null && cookies.length> 0) {for (cookie c: cookies) {String cookiename = c.getName () ؛ if (cookiename.startswith ("Safly") cookievalueout.println (c.getValue ()) ؛ out.print ("<br>") ؛}}} ٪> </body> </html>book.jsp
<٪@page import = "java.util.arraylist" ٪> <٪@page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en. "http://www.w3. ٪> <br> <br> <a href = "books.jsp"> return </a> <٪ string book = request.getParameter ("book") ؛ // حدد ملف تعريف الارتباط المراد حذفه ملف تعريف الارتباط [] ملفات تعريف الارتباط = request.getCoOkies () ؛ // حفظ جميع ملفات تعريف الارتباط بدءًا من SaflayRayList <leckie> bookcoies = new arraylist < ملف تعريف الارتباط الذي يتطابق معه الكتب الواردة cookie tempcookie = null ؛ if (ملفات تعريف الارتباط! = null && cookies.length> 0) {for (cookie c: cookies) {String cookiename = if (c.getValue (). يساوي (كتاب)) {out.print (" //out.print("tempcookie == null ") ؛} // إذا كان فيه ، احذف الكتبوكي نفسها ، وحذف ملفات تعريف الارتباط المكررة في القائمة ، وقم بتمريرها إذا (tempcookie! = null) {tempcookie.setmaxage (0) ؛ Response.addcookie (tempcokie) ؛} // إرجاع الكتاب الذي تم تمريره من books.jsp كطهي ملفات تعريف الارتباط = ملف تعريف الارتباط الجديد ("Safly"+Book ، Book) ؛ reponse.addcookie (cook) ؛ ٪> </body> </html>دعونا نتحدث عن العلاقة المنطقية:
في books.jsp ، فيما يلي قائمة بالكتب.
Javaweb
جافا
أوراكل
أياكس
جافا سكريبت
Android
JBPM
حددت بشكل عشوائي رابط (مثل Javaweb) للقفز إلى Book.jsp. في المرة الأولى التي وصلت إليها ، لم يكن هناك ملف تعريف ارتباط ، لذلك اتصلت بالطريقة التالية لـ book.jsp وأنشأت ملف تعريف ارتباط. في صفحة book.jsp ، انقر فوق العودة إلى العودة إلى books.jsp وأخرج cookievalue الذي تم تقديمه بواسطة cooks.jsp ، ثم عرض قائمة الكتب المحددة.
Cookie Cook = New Cookie ("Safly"+Book ، Book) ؛ Response.addcookie (Cook) ؛ الآن عدنا إلى books.jsp واختارنا كتاب Javaweb. نحن نختار كتابًا (على افتراض Java) ، ثم القفز إلى Books.jsp. في هذه اللحظة ، سنحضر ملف تعريف ارتباط (تم تمريره لي عندما تم اختيار Javaweb لأول مرة للوصول إلى Books.JSP). القيمة الرئيسية لهذا ملف تعريف الارتباط هي Saflyjavawebjavaweb ، ولكن ماذا؟ اختيار الكتاب الثاني Java لا يأتي مع ملفات تعريف الارتباط (لا Saflyjava)
ثم أدخل cooks.jsp
if (cookiename.startswith ("Safly"))لذلك ، ضع saflyjavawebjavaweb في كوكوكوكيموكيرسيين (تخزين قائمة الكتب المحددة) وبعد ذلك ، سيتم إنشاء Saflyjavajava. عند النقر فوق Renturn ، أعط ملفات تعريف الارتباط. jsp عكس
. . . . عند اختيار كتاب للمرات الثالثة والرابعة والخامسة ، فإن هذا هو نفس العملية. إذا اخترت 5 كتب في books.jsp ، كيف تتعامل معها عند اختيار أحد هذه الكتب الخمسة؟
C.GetValue (). يساوي (كتاب) للحصول على الكتاب المحدد. نحتاج إلى حذف ملف تعريف الارتباط هذا ثم إضافته مرة أخرى ونقله إلى رمز ملفات تعريف الارتباط.
tempcookie.setMaxage (0) ؛ reponse.addcookie (tempcookie) ؛
إذا اخترت 5 كتب في books.jsp واختر الكتاب السادس الذي ليس هو الكتب الخمسة ، وكيفية التعامل معها؟
دعنا فقط tempcookie = bookcookies.get (0) ؛ أخرج الكتاب الأول من الكتب الخمسة ، ثم tempcookie.setMaxage (0) ؛ احذف ملف تعريف الارتباط الأول ، ثم قم بإنشاء ملف تعريف الارتباط إلى ملفات تعريف الارتباط.
فيما يلي بعض لقطات الشاشة:
مسار عمل ملفات تعريف الارتباط
cookie2.jsp
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! "http://www.w3. request.getCoOkies () ؛ if (ملفات تعريف الارتباط! = null && cookies.length> 0) {for (ملفات تعريف الارتباط: ملفات تعريف الارتباط) {if ("cookiepath" .equals (cookie.getName ()))) null) {out.print (cookievalue) ؛} آخر {out.print ("لا يوجد ملف تعريف ارتباط محدد") ؛} ٪> </body> </html>WriterCookie.jsp
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! "http://www.w3. الدليل ، ولكن لا يمكن أن يتصرف على الدليل السابق للدليل الحالي // يمكنه تعيين نطاق ملف تعريف الارتباط من خلال setpath ،/يمثل الدليل الجذر لملف تعريف الارتباط = cookie جديد ("cookiepath" ، "cookiepathvalue") cookie2.jsp </a> </body> </html>إلى cookie2.jsp هو ملف تعريف الارتباط.
ما سبق هو تطوير Javaweb باستخدام ملفات تعريف الارتباط لإنشاء - الحصول على - الثبات ، تسجيل الدخول التلقائي ، سجلات التسوق ، ومسارات الوظائف. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!