ملفات تعريف الارتباط هي ملفات نصية مخزنة على جهاز الكمبيوتر العميل، وهي تحفظ كمية كبيرة من معلومات المسار. استنادًا إلى تقنية servlet، من الواضح أن JSP يمكنه تقديم الدعم لملفات تعريف الارتباط HTTP.
عادة ما تكون هناك ثلاث خطوات لتحديد العملاء المتكررين:
يرسل البرنامج النصي للخادم سلسلة من ملفات تعريف الارتباط إلى المتصفح. مثل الاسم والعمر ورقم الهوية وما إلى ذلك.
يقوم المتصفح بتخزين هذه المعلومات محليًا على الكمبيوتر في حالة الحاجة إليها.
وفي المرة التالية التي يرسل فيها المتصفح أي طلب إلى الخادم، فإنه سيرسل أيضًا معلومات ملفات تعريف الارتباط هذه إلى الخادم، ومن ثم يستخدم الخادم هذه المعلومات للتعرف على المستخدم أو القيام بأشياء أخرى.
سيعلمك هذا القسم كيفية ضبط ملفات تعريف الارتباط أو إعادة تعيينها، وكيفية الوصول إليها وكيفية حذفها.
عادةً ما يتم تعيين ملفات تعريف الارتباط في رؤوس HTTP (على الرغم من أن JavaScript يمكنها تعيين ملفات تعريف الارتباط مباشرة في المتصفح). في JSP، يتطلب إعداد ملف تعريف الارتباط إرسال رأس المعلومات التالية إلى الخادم:
HTTP/1.1 200 OKDate: الجمعة، 04 فبراير 2000، 21:03:38 GMTServer: Apache/1.3.9 (UNIX) PHP/4.0b3Set-Cookie: name=xyz انتهاء الصلاحية=الجمعة، 04 فبراير-07 22:03: 38 بتوقيت جرينتش؛ المسار =/؛ المجال = tutorialspoint.com الاتصال: نوع المحتوى المغلق: نص/html
كما ترون، يحتوي رأس Set-Cookie على زوج من القيمة الرئيسية، وتوقيت GMT (توقيت غرينتش)، ومسار، واسم المجال. سيتم ترميز أزواج القيمة الرئيسية كعناوين URL. حقل تاريخ انتهاء الصلاحية عبارة عن تعليمات تخبر المتصفح بعد الوقت الذي يمكنه مسح ملف تعريف الارتباط هذا.
إذا تم تكوين متصفحك لتخزين ملفات تعريف الارتباط، فسوف يحتفظ بهذه المعلومات حتى تنتهي صلاحيتها. إذا تطابقت أي صفحة زارها المستخدم مع المسار واسم المجال في ملف تعريف الارتباط، فسيقوم المتصفح بإعادة إرسال ملف تعريف الارتباط مرة أخرى إلى الخادم. يبدو الرأس الموجود على جانب المتصفح كما يلي:
GET / HTTP/1.0 الاتصال: Keep-AliveUser-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) المضيف: zink.demon.co.uk:1126 قبول: image/gif, */*قبول- الترميز: gzipAccept-اللغة: enAccept-Charset: iso-8859-1,*,utf-8Cookie: name=xyz
تصل البرامج النصية لـ JSP إلى ملفات تعريف الارتباط هذه من خلال طريقة getCookies () في كائن الطلب. تقوم هذه الطريقة بإرجاع مصفوفة من كائنات ملفات تعريف الارتباط.
يسرد الجدول التالي الطرق المستخدمة بشكل شائع في كائنات ملفات تعريف الارتباط:
رقم سري | الطريقة والوصف |
---|---|
1 | يقوم public void setDomain(String Pattern) بتعيين اسم المجال لملف تعريف الارتباط، مثل w3cschool.cn |
2 | تحصل السلسلة العامة getDomain() على اسم المجال لملف تعريف الارتباط، مثل w3cschool.cn |
3 | يقوم setMaxAge (int expiry) باطلة عامة بتعيين فترة صلاحية ملف تعريف الارتباط بالثواني. فترة الصلاحية الافتراضية هي وقت بقاء الجلسة الحالية. |
4 | يحصل public int getMaxAge() على فترة صلاحية ملف تعريف الارتباط بالثواني، والقيمة الافتراضية هي -1، مما يشير إلى أن ملف تعريف الارتباط سيظل موجودًا حتى يتم إغلاق المتصفح |
5 | تقوم String getName() العامة بإرجاع اسم ملف تعريف الارتباط، ولا يمكن تعديل الاسم بعد إنشائه. |
6 | public void setValue(String newValue) يعين قيمة ملف تعريف الارتباط |
7 | تحصل السلسلة العامة getValue() على قيمة ملف تعريف الارتباط |
8 | يقوم public void setPath(String uri) بتعيين مسار ملف تعريف الارتباط، والذي يكون افتراضيًا لجميع عناوين URL في دليل الصفحة الحالية وجميع الدلائل الفرعية في هذا الدليل. |
9 | تحصل String getPath() العامة على مسار ملف تعريف الارتباط |
10 | تشير مجموعة الفراغ العام (علامة منطقية) إلى ما إذا كان يجب تشفير ملف تعريف الارتباط للإرسال |
11 | يقوم public void setComment(String Purpose) بتعيين التعليق لوصف الغرض من ملف تعريف الارتباط. يمكن أن تكون التعليقات التوضيحية مفيدة عندما يعرض المتصفح ملف تعريف الارتباط للمستخدم |
12 | تقوم String getComment() العامة بإرجاع تعليق يصف الغرض من ملف تعريف الارتباط، أو فارغة إذا لم يكن هناك أي شيء |
يتضمن إعداد ملفات تعريف الارتباط باستخدام JSP ثلاث خطوات:
(1) إنشاء كائن ملف تعريف الارتباط: اتصل بمنشئ ملف تعريف الارتباط، باستخدام اسم ملف تعريف الارتباط وقيمته كمعلمات، وكلاهما عبارة عن سلاسل.
ملف تعريف الارتباط = ملف تعريف الارتباط الجديد ("مفتاح"، "قيمة")؛
من المهم أن تتذكر أنه لا يمكن أن يحتوي الاسم أو القيمة على مسافات أو الأحرف التالية:
[ ] ( ) = , " / ? @ : ;
(2) قم بتعيين فترة الصلاحية: قم باستدعاء الدالة setMaxAge() للإشارة إلى المدة (بالثواني) التي يكون فيها ملف تعريف الارتباط صالحًا. تحدد العملية التالية فترة الصلاحية إلى 24 ساعة.
cookie.setMaxAge(60*60*24);
(3) أرسل ملفات تعريف الارتباط إلى رأس استجابة HTTP: قم باستدعاء وظيفة Response.addCookie() لإضافة ملفات تعريف الارتباط إلى رأس استجابة HTTP.
Response.addCookie(cookie);
<% // تعيين ملفات تعريف الارتباط للاسم الأول واسم العائلة Cookie firstName = new Cookie("first_name", request.getParameter("first_name")); Cookie lastName = new Cookie("last_name",request.getParameter("last_name")); // اضبط وقت انتهاء صلاحية ملف تعريف الارتباط على 24 ساعة. firstName.setMaxAge(60*60*24); lastName.setMaxAge(60*60*24); // أضف ملف تعريف الارتباط إلى رأس الاستجابة Response.addCookie( firstName ); head><title>إعدادات ملفات تعريف الارتباط</title></head><body><center><h1>الإعدادات ملفات تعريف الارتباط</h1></center><ul><li><p><b>الاسم الأول:</b><%= request.getParameter("first_name")%></p></li>< li><p><b>الاسم الأخير:</b> <%= request.getParameter("last_name")%></p></li></ul></body></html>
ضع الملف أعلاه في دليل <Tomcat Installation Directory>/webapps/ROOT، ثم قم بزيارة http://localhost:8080/hello.jsp، وستحصل على الإخراج التالي:
حاول إدخال الاسم الأول واسم العائلة، ثم انقر فوق زر إرسال، وسيعرض الاسم الأول واسم العائلة على شاشتك، وقم بتعيين ملفي تعريف ارتباط، الاسم الأول واسم العائلة، والذي سيتم إرسالهما إلى الخادم في المرة التالية التي تنقر فيها. زر الإرسال .
لقراءة ملفات تعريف الارتباط، تحتاج إلى استدعاء طريقة request.getCookies() للحصول على مصفوفة من كائنات javax.servlet.http.Cookie، ثم التكرار عبر المصفوفة واستخدام طريقة getName() وطريقة getValue() للحصول على كل ملف تعريف ارتباط الاسم والقيمة .
دعونا نقرأ ملفات تعريف الارتباط من المثال السابق.
<html><head><title>قراءة ملفات تعريف الارتباط</title></head><body><center><h1>قراءة ملفات تعريف الارتباط</h1></center><% Cookie cookie = null Cookie[] cookies = null; // الحصول على بيانات ملفات تعريف الارتباط، وهي عبارة عن مصفوفة cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> تم العثور على اسم وقيمة ملفات تعريف الارتباط</h2>"); إنت ط = 0; i < cookies.length; i++){ cookie = cookies[i]; out.print("Name : " + cookie.getName() + ", "); ( )+" <br/>"); } }else{ out.println("<h2>لم يتم العثور على ملفات تعريف الارتباط</h2>");
إذا قمت بتعيين ملف تعريف الارتباط للاسم الأول على "John" والاسم الأخير على "Player" وقمت بزيارة http://localhost:8080/main.jsp، فستحصل على الإخراج التالي:
اسم ملفات تعريف الارتباط التي تم العثور عليها واسم القيمة: first_name، القيمة: John Name: last_name، القيمة: Player
يعد حذف ملفات تعريف الارتباط أمرًا سهلاً للغاية. إذا كنت تريد حذف ملف تعريف الارتباط، فما عليك سوى اتباع الخطوات الموضحة أدناه:
احصل على ملف تعريف ارتباط موجود وقم بتخزينه في كائن ملف تعريف الارتباط.
اضبط تاريخ انتهاء صلاحية ملف تعريف الارتباط على 0.
أضف ملف تعريف الارتباط هذا مرة أخرى إلى رأس الاستجابة.
يقوم البرنامج التالي بحذف ملف تعريف الارتباط المسمى "first_name". في المرة التالية التي تقوم فيها بتشغيل main.jsp، سيكون الاسم الأول فارغًا.
<html><head><title>قراءة ملفات تعريف الارتباط</title></head><body><center> <h1>قراءة ملفات تعريف الارتباط</h1></center><% Cookie cookie = null Cookie[] cookies = null; // احصل على ملفات تعريف الارتباط تحت اسم المجال الحالي، وهو مصفوفة cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> تم العثور على اسم وقيمة ملفات تعريف الارتباط</h2> "); من أجل (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; if((cookie.getName( )).compareTo("first_name") == 0 ){ cookie.setMaxAge(0); (cookie); out.print("ملف تعريف الارتباط المحذوف: " + cookie.getName() + "<br/>"); } out.print("Name : " + cookie.getName() + ", "); out.print("Value: " + cookie.getValue() )+" <br/>"); الجسم></html>
الوصول إليه سيعطيك الإخراج التالي:
اسم ملفات تعريف الارتباط والقيمة: ملف تعريف الارتباط المحذوف: first_nameName: first_name، القيمة: JohnName: last_name، القيمة: Player
قم بزيارة http://localhost:8080/main.jsp مرة أخرى وستحصل على النتائج التالية:
تم العثور على اسم ملفات تعريف الارتباط واسم القيمة: last_name، القيمة: Player
يمكنك أيضًا حذف ملفات تعريف الارتباط يدويًا في متصفحك. انقر فوق عنصر القائمة "أدوات"، ثم حدد "خيارات الإنترنت"، وانقر فوق "حذف ملفات تعريف الارتباط" لحذف جميع ملفات تعريف الارتباط.