تصف هذه المقالة وظيفة تنفيذ الويب Java التي تقفز تلقائيًا إلى صفحة تسجيل الدخول بعد انتهاء صلاحية الجلسة. شاركه للرجوع إليه ، على النحو التالي:
من خلال المرشحات ، ستقفز الجلسة تلقائيًا إلى صفحة تسجيل الدخول بعد انتهاء صلاحيتها.
المرشحات مفيدة فقط على الخوادم المتوافقة مع Servlet Specification الإصدار 2.3. إذا احتاج تطبيق الويب الخاص بك إلى دعم الخوادم القديمة ، فلا يمكنك استخدام المرشحات.
1. إنشاء المرشحات الأساسية
ينطوي إنشاء مرشح على الخطوات الخمس التالية:
1) إنشاء ملف جلسة الفصل الذي يقوم بتنفيذ واجهة المرشح . يتطلب هذا الفئة ثلاث طرق ، وهي: Dofilter ، init and Dorting. تحتوي طريقة Dofilter على رمز الترشيح الرئيسي ، وتؤسس طريقة init عملية الإعداد ، وتنظف طريقة التدمير.
2) وضع سلوك التصفية في طريقة dofilter . المعلمة الأولى لطريقة dofilter هي كائن servletrequest. يوفر هذا الكائن للمرشح الوصول الكامل إلى المعلومات الواردة ، بما في ذلك بيانات النماذج وملفات تعريف الارتباط ورؤوس طلب HTTP. المعلمة الثانية هي servletResponse ، والتي عادة ما يتم تجاهلها في المرشحات البسيطة. المعلمة الأخيرة هي FilterChain ، كما هو موضح في الخطوة التالية ، والتي يتم استخدامها للاتصال بصفحة Servlet أو JSP.
3) استدعاء طريقة dofilter لكائن SessionFilter . تأخذ طريقة dofilter لواجهة المرشح كائن filterchain كمعلمة له. عند استدعاء طريقة dofilter لهذا الكائن ، يتم تنشيط المرشح التالي ذي الصلة. إذا لم يرتبط مرشح آخر بصفحة Servlet أو JSP ، يتم تنشيط صفحة Servlet أو JSP.
4) تسجيل مرشحات صفحات Servlet و JSP المقابلة . استخدم عناصر تصفية مرشح وتصفية في ملف واصف النشر (web.xml).
5) تعطيل servlet المنشط . منع المستخدمين من تجاوز إعدادات المرشح باستخدام عنوان URL الافتراضي Servlet.
رمز المصدر كما يلي:
package com.base.filter ؛ import java.io.ioException ؛ استيراد javax.servlet.filter ؛ استيراد javax.servlet.filterchain javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpservletresponse ؛ import javax.servlet.http.httpsession تصفية تدمير ، بشكل عام إطلاق الموارد} / ** * تحتاج بعض عناوين URL إلى تسجيل الدخول إلى الوصول إلى (مرشح التحقق من الجلسة) * / public void dofilter (servletRequest Arg0 ، servletResponse Arg1 ، filterchain arg2) يلقي IoException ، servleTexception {httpservledrequest = (httplesterquest) httpservletresponse استجابة = (httpservletResponse) arg1 ؛ جلسة httpsession = request.getSession () ؛ // تحكم على ما إذا كانت الجلسة تنتهي صلاحيتها إذا ((المستخدم) session.getAttribute (SessionKeyConstants.login) == NULL) {string errors = "لم يتم تسجيل الدخول حتى الآن ، أو انتهت الجلسة. يرجى تسجيل الدخول أولاً!" ؛ request.setattribute ("رسالة" ، أخطاء) ؛ // skip to the login page request.getRequestDispatcher ("/login.jsp"). } آخر {arg2.dofilter (طلب ، استجابة) ؛ }} public void init (filterConfig arg0) يلقي servletexception {// تهيئة العملية ، وقراءة معلمات التهيئة لتكوين المرشح في web.xml ، وتلبية المتطلبات التي لا تستفيد من هذه الطريقة}}2. تكوين في ملف تكوين web.xml
<!-تعيين وقت انتهاء صلاحية الجلسة إلى 30 دقيقة-> <Session-Config> <tickt-timeout> 30 </session-timeout> </ential-config> <!-تكوين مرشح الجلسة ذات الصلة-> <filter> <filter-name> sessionfilter </ilipter-name> <ilter-class> com.base.filter.sessionfilter <Filter-Name> SessionFilter </filter-name> <url-pattern>/sticy/*</url-pattern> <url-pattern>/user/*</url-pattern> <spatcher> تصفية. -> <spatcher> طلب </dispatcher> </filter-mapping>
لمزيد من المعلومات حول المحتوى المتعلق بـ Java ، يرجى مراجعة موضوعات هذا الموقع: "بنية بيانات Java والبرنامج التعليمي الخوارزمية" ، "ملخص لمهارات تشغيل Java و Signory" ، "ملخص لمهارات عقدة Java" و "ملخص لمهارات تشغيل Java Cache"
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.