صفحة الترحيب Welcome.jsp
عندما يقوم المستخدم بإدخال كلمة المرور الصحيحة، يتحكم Switch.jsp في صفحة JSP لتوجيه صفحة الترحيب Welcome.jsp. في هذا القسم، نقوم بتطوير صفحة Welcome.jsp. نظرًا لأن Welcome.jsp يحتاج إلى استخدام مكتبة علامات خارجية، فأنت بحاجة إلى إجراء بعض التكوينات في JBuilder لتقديم مكتبة العلامات هذه قبل تطوير Welcome.jsp.
قم بتكوين مكتبات علامات الطرف الثالث في JBuilder
توفر مؤسسة Apache مفتوحة المصدر العديد من مكتبات العلامات المفيدة. تحتاج صفحة الترحيب Welcome.jsp إلى استخدام مكتبة علامات التاريخ والوقت من Apache. يمكنك استخدام مكتبة العلامات هذه لتوفير عروض زمنية مختلفة في JSP. عنوان التنزيل هو: /u/info_img /2009-07/02/jakarta-taglibs-datetime-1.0.1.zip.
تشتمل مكتبة العلامات بشكل عام على ملفين، أحدهما هو ملف JAR لحزمة الفئة، والآخر هو ملف وصف العلامة ذو الامتداد .tld. بعد فك ضغط الملف المضغوط الذي تم تنزيله، نضع ملفات taglibs-datetime.jar وtaglibs-datetime.tld في الدليل
لاستخدام مكتبة علامات تابعة لجهة خارجية في مشروع، يجب عليك تكوين مكتبة العلامات في JBuilder مسبقًا والإشارة إليها في المشروع. يشبه تكوين مكتبات العلامات تكوين مكتبات الفئات، ويتم إجراؤه أيضًا من خلال مربع الحوار تكوين المكتبات. يتم إدراج مكتبة فئة JBuilder ومكتبة العلامات في الشجرة الموجودة على اليسار في مربع الحوار تكوين المكتبات، ويتم عرض مكتبة الفئة على أنها أيقونة، بينما تظهر مكتبة العلامات كـ رمز. بعد ذلك نقوم بتكوين مكتبة علامات التاريخ والوقت في JBuilder.
1. أدوات->تكوين->المكتبات->مربع حوار تكوين المكتبات.
انقر فوق الزر إضافة... الموجود في الزاوية السفلية اليسرى من مربع الحوار تكوين المكتبات ليظهر مربع الحوار معالج المكتبة الجديدة، كما هو موضح أدناه:
الشكل 17: مربع الحوار "معالج المكتبة الجديدة". |
الشكل 18: التبديل إلى الإطار |
الشكل 19: ملف الوصف الذي يحدد مكتبة العلامات |
الشكل 20 التأثير بعد تكوين مكتبة العلامات بشكل صحيح |
الشكل 21: المكتبة المرجعية للمشروع |
الشكل 22: مكتبة العلامات المرجعية |
الشكل 23: المراجع التي تم وضعها في userBean في الجلسة في ملف Switch.jsp |
1. <%@ page contentType="text/html; charset=GBK" %> 2. <%@ taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt" %> 3. <أتش تي أم أل> 4. <الرأس> 5. <العنوان> 6. مرحبا بكم 7.</العنوان> 8.</الرأس> 9. <jsp:useBean id = "ses_userBean" نطاق = "جلسة" فئة = "bookstore.User" /> 10.<jsp:setProperty name="ses_userBean" property="*" /> 11.<body bgcolor="#ffffff"> 12.<h1> 13. تم إنشاء JBuilder بواسطة JSP 14.</h1> 15.</الجسم> 16.</html> |
، وسيستخدم JBuilder وظيفة TagInsight لعرض جميع عناصر العلامات المتاحة في مكتبة العلامات هذه، كما يلي كما هو مبين في الشكل:
الشكل 24 استخدام TagInsight للدخول إلى مكتبة العلامات
يمكن استخدام TagInsight لإدخال العلامات المتاحة في مكتبة العلامات بسهولة، مما يؤدي إلى تسريع عملية إدخال التعليمات البرمجية لمكتبة العلامات بشكل كبير ويضمن صحتها. في Welcome.jsp، نستخدم مكتبة العلامات للحصول على سلسلة زمنية منسقة حاليًا، بالإضافة إلى ذلك، نحصل أيضًا على اسم المستخدم من خلال ses_userBean. يبدو الكود النهائي لـ Welcome.jsp كما يلي:
قائمة التعليمات البرمجية 16 Welcome.jsp تشير إلى مكتبة العلامات وكائن الجلسة
1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp" %> 2. <%@taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt"%> 3. <أتش تي أم أل> 4. <الرأس> 5. <العنوان> مرحباً>/العنوان> 6.</الرأس> 7. <jsp:useBean id = "ses_userBean" نطاق = "جلسة" فئة = "bookstore.User"/> 8.<body bgcolor="#ffffff">أنت 9. <%=ses_userBean.getUserName()%>، مرحبًا بك لتسجيل الدخول. 10. الوقت الحالي هو 12.</الجسم> 13.</html> |
بالإضافة إلى ذلك، قام JBuilder بنسخ ملف وصف مكتبة علامات التاريخ والوقت taglibs-datetime.tld إلى WEB-INF، والتلاعب بملف web.xml للإعلان عن عنوان taglibs-datetime.tld:
قائمة التعليمات البرمجية 17 الإعلان عن ملف وصف العلامة في web.xml
1.<?xml version="1.0" encoding="UTF-8"?> 2.… 3. <تطبيق الويب> 4.<تاغليب> 5. <taglib-uri>http://jakarta.apache.org/taglibs/datetime-1.0</taglib-uri> 6. 7.</تاجليب> 8.</تطبيق الويب> |
كما هو موضح أعلاه، في الأسطر من 4 إلى 7 من web.xml، يقوم JBuilder تلقائيًا بإضافة ملف الوصف الخاص بمكتبة علامات التاريخ والوقت حتى تتمكن حاوية الويب من العثور على المعلومات المطلوبة بشكل صحيح.
عند تجميع المشروع لإنشاء دليل ويب، سيقوم JBuilder بنسخ ملف JAR taglibs-datetime.jar الخاص بمكتبة علامات التاريخ والوقت إلى دليل WEB-INF/lib.
عندما يقوم المستخدم بتسجيل الدخول بنجاح، سيتم إعادة توجيهه إلى صفحة Welcome.jsp ويكون تأثير الصفحة كما هو موضح أدناه:
الشكل 25: صفحة تأثير Welcome.jsp |
عندما ينقر المستخدم على الرابط "هنا"، سيتم ربطه بـ Quit.jsp. تكون صفحة Quit.jsp مسؤولة عن مسح الجلسة، وبعد مسح الجلسة، ستقوم بإلغاء ربط الكائنات المشار إليها في الجلسة وتحرير الموارد.
صفحة معالجة الخروج Quit.jsp
نظرًا لأن بروتوكول HTTP يعمل بطريقة الطلب/الاستجابة، فعندما يخرج العميل من النظام، فإنه يحتاج إلى إرسال طلب نشط إلى خادم الويب لإعلام خادم الويب بتدمير الجلسة في الوقت المناسب، وإلا فإن خادم الويب سينتظر فقط حتى تنتهي الجلسة قبل تدميرها.
نحن نستخدم Quit.jsp للتعامل مع خروج المستخدم من النظام. يعتبر Quit.jsp مسؤولاً عن تسجيل الخروج من الجلسة وتحرير الموارد في الوقت المناسب.
· تسجيل الخروج من الجلسة.
· أغلق نافذة المتصفح.
الرمز هو كما يلي:
1. <%@ page contentType="text/html; charset=GBK" %> 2.%% 3.session.invalidate(); 4.%> 5. < لغة السيناريو = "جافا سكريبت" > 6.window.opener = null; 7.window. Close(); 8.</نصي> |
السطر 3 مسؤول عن تسجيل الخروج من الجلسة، وستكون الكائنات الموضوعة أصلاً في الجلسة غير مرتبطة وتنتظر حتى تقوم مجموعة البيانات المهملة بتحرير الموارد. في هذا المثال، يوجد كائن userBean اسمه ses_userBean في الجلسة (يتم وضعه في الجلسة في Switch.jsp بعد استدعاء session.invalidate()، يكون userBean غير منضم من الجلسة، وسيتم استخدام أسلوب valueUnbound() الخاص به). يتم تشغيلها ثم انتظر جمع البيانات المهملة.
الأسطر من 5 إلى 8 هي برنامج نصي جافا سكريبت مسؤول عن إغلاق النافذة. إذا لم يتم فتح صفحة الويب من خلال برنامج نصي (window.open())، فيجب تعيين كائن window.opener قبل استدعاء window.إغلاق(). البرنامج النصي لإغلاق النافذة فارغ، كما هو موضح في السطر 6، وإلا سينبثق المتصفح مربع حوار يؤكد الإغلاق. وجد المؤلف أن هذه المشكلة أزعجت العديد من مبرمجي الويب، لذلك أشرت إليها على وجه الخصوص.
الخبرة العملية: عندما يخرج المستخدم من النظام، يجب تسجيل الخروج من الجلسة، وإلا فلن يتم مسح كائن الجلسة حتى تنتهي الجلسة في الخادم. افترض أن الحد الأقصى لوقت عدم النشاط للجلسة هو 30 دقيقة (الوقت الافتراضي). إذا لم يتم مسح كائنات الجلسة يدويًا، فلن يتم تحرير موارد النظام التي تشغلها هذه الكائنات إلا بعد مرور 30 دقيقة بعد خروج المستخدم من النظام. |