أولاً ، دعونا نفهم ما هي ملفات تعريف الارتباط:
ملفات تعريف الارتباط هي في الواقع بيانات موجودة في محرك الأقراص الثابتة الخاصة بك ، ولكن هذه البيانات مميزة للغاية ولا يمكن تقديمها إلا إلى المتصفح للحصول على مساعدة في تخزين الويب بواسطة تطبيقات الويب. يمكننا أيضًا قراءة ملفات تعريف الارتباط للمتصفح.
تقوم تطبيقات الويب عمومًا بتخزين بعض معلومات المستخدم وغيرها من البيانات الصغيرة والمؤقتة في ملفات تعريف الارتباط. إذا كانت كمية البيانات كبيرة ، فهي ليست مناسبة لتخزينها في ملفات تعريف الارتباط.
عمومًا ، ستمنحهم المتصفحات 40 ملف تعريف ارتباط لتخزين البيانات لكل تطبيق ويب ، ولا يتجاوز حجم كل ملف تعريف ارتباط (سمعت أن بعض المتصفحات يمكنها تخزين البيانات الكبيرة ، لكننا لا نقوم عمومًا بتخزين هذه البيانات الكبيرة لأن كفاءة استخراج البيانات ليست عالية ، مما يؤثر على الأداء)
بعد قول الكثير من الهراء ، جاءت النقطة أخيرًا
تصل Java إلى بيانات ملفات تعريف الارتباط في طلبات المتصفح من خلال واجهة httpservletrequest (دعني أفهم القصة الكاملة لملفات تعريف الارتباط هنا ، وسيتم تقديم الكود لاحقًا)
يحتوي كل ملف تعريف ارتباط على سمتين: المفتاح والقيمة (لا توجد سلسلة تنسيق محددة ، بحيث يمكنك تخزين البيانات في DIY ، ولكن يجب عليك الانتباه إلى مشكلات ترميز URL. ستتم مناقشة مشكلات الترميز مع الكود لاحقًا)
إذا كنا بحاجة إلى تخزين ملفات تعريف الارتباط الجديدة ، فيمكننا جدد مثيل ملفات تعريف الارتباط وإرساله إلى المتصفح من خلال httpservletrsponse ، ثم تخزينه محليًا
هنا فئة مشتركة لملفات تعريف الارتباط
/ * * يمكن لهذه الفئة استخراج ملفات تعريف الارتباط من طلب المتصفح وتنفيذ العمليات ذات الصلة على ملفات تعريف الارتباط *//cookiesoutil public cookiesutil يمتد BaseController {/** readCoOkiEmap (طلب) ؛ if (cookiemap.containskey (name)) {cookie cookie = (cookie) cookiemap.get (name) ؛ إرجاع ملف تعريف الارتباط } آخر {return null ؛ }} / ** * تغليف ملفات تعريف الارتباط في الخريطة * * param request * @return * / private static map <string ، cookie> readCoOkieMap (httpservletrequest request) {map <string ، cookie> cookiemap = new hashmap <string ، cookie> () ؛ ملفات تعريف الارتباط [] ملفات تعريف الارتباط = request.getCoOkies () ؛ if (null! = cookies) {for (ملفات تعريف الارتباط ملفات تعريف الارتباط: ملفات تعريف الارتباط) {cookiemap.put (cookie.getName () ، cookie) ؛ }} إرجاع cookiemap ؛ } / ** * حفظ ملفات تعريف الارتباط * * param استجابة * servlet request * param value * Save Value * Author JXF * / public static httpservletresponse setCoOkie (httpservletsponse response ، اسم السلسلة ، قيمة السلسلة ، int it) // Application Sharing Cookie.setPath ("/") ؛ // إذا كانت قيمة ملف تعريف الارتباط تحتوي على الصينية ، فيجب تشفير ملف تعريف الارتباط ، وإلا سيتم إنشاء الرمز المشتعلة. حاول {urlencoder.encode (القيمة ، "UTF-8") ؛ } catch (UnsupportedEncodingException e) {E.PrintStackTrace () ؛ } cookie.setMaxage (time) ؛ // أضف ملف تعريف الارتباط إلى الاستجابة لجعله يستحق المفعول. addcookie (ملف تعريف الارتباط) ؛ // بعد addcookie ، إذا كان ملف تعريف الارتباط الذي يحمل نفس الاسم موجودًا بالفعل ، فإن أحدث كتاب تم الكتابة فوق رد فعل ملفات تعريف الارتباط القديمة ؛ }مع الفئة العامة أعلاه ، يمكننا قراءة وإنشاء ملفات تعريف الارتباط الجديدة. هنا أود أن أذكر شيئًا واحدًا: إذا كان اسم ملف تعريف الارتباط الجديد موجودًا بالفعل ، فلن يتم إضافته مرارًا وتكرارًا ، وسيتم كتابة ملف تعريف الارتباط السابق.
كيف يشاهد المتصفح ملفات تعريف الارتباط المطلوبة وملفات تعريف الارتباط التي تم إرجاعها؟ خذ متصفح Google لسخيفة
ثم قد نحتاج إلى حذف ملفات تعريف الارتباط
/** * <p> حذف ملفات تعريف الارتباط غير صالحة </p> * <p> غير صالحة؟ 1. عفا عليها الزمن 2. غير منشور </ p> * param طلب * param استجابة * param قائمة */ private void delectcookiebyname (httpservletrequest request ، httpservletresponse response ، string deletekey) يلقي nullpointerxception {12 map <string ، cookiemap = readcookiem. cookiemap.keyset ()) {if (key == deletekey && key.equals (deletekey)) {cookie cookie = cookiemap.get (key) ؛ 21 ملف تعريف الارتباط. }}}لاحظ أن حذف ملفات تعريف الارتباط يجب أن يكون لكل من معلمات الوقت والمسار ، وإلا فإن بعض المتصفحات لا يمكنها حذفها.
ما سبق هو مجموعة بيانات Java للقراءة والكتابة إلى ملفات تعريف الارتباط للمتصفح. سنستمر في إضافة المعلومات ذات الصلة في المستقبل. شكرا لك على دعمك لهذا الموقع!