خريطة الفلترةping في ملف Web.xml
⚡ ملخص ذكي
خريطة الفلترةping يحدد ملف Web.xml كيفية قيام مرشحات JSP باعتراض طلبات العميل واستجابات الخادم في Java تطبيق ويب. يقوم بتسجيل كل مرشح في وصف النشر، مما يتيح المصادقة والتسجيل والضغط والتشفير قبل الوصول إلى الموارد.

ما هي مرشحات JSP؟
- يتم استخدام عوامل التصفية في web.xml لتصفية وظائف الملف Java تطبيق الويب.
- إنهم يعترضون الطلبات الواردة من العميل قبل أن يحاول الوصول إلى المورد.
- يتلاعبون بالاستجابات من الخادم ويرسلونها إلى العميل.
يتم تعريف عوامل التصفية في web.xml، وهي عبارة عن خريطة لـ servlet أو JSP. عندما تبدأ حاوية JSP بتطبيق الويب، فإنها تقوم بإنشاء مثيل لكل عامل تصفية في web.xml تم الإعلان عنه في واصف النشر.
أنواع المرشحات في JSP
يدعم JSP عدة أنواع من المرشحات، كل منها يعالج مشكلة محددة في دورة الطلب والاستجابة:
- مرشحات المصادقة
- مرشحات ضغط البيانات
- مرشحات التشفير
- مرشحات سلسلة MIME
- مرشحات التسجيل
- مرشحات الترميز
طرق تصفية JSP
بمجرد معرفة أنواع المرشحات، يصبح من المفيد فهم الطرق التي تتحكم في دورة حياة المرشح. فيما يلي طرق المرشحات:
void عام doFilter(ServletRequest، ServletResponse، FilterChain)
يتم استدعاء هذا في كل مرة يتم فيها تمرير طلب/استجابة من كل عميل عند طلبه من أحد الموارد.
الحرف الأول من الفراغ العام (FilterConfig)
هذا للإشارة إلى أن الفلتر في JSP قد تم وضعه في الخدمة.
تدمير الفراغ العام ()
يشير هذا إلى أن الفلتر قد تم إخراجه من الخدمة.
مثال
في هذا المثال، قمنا بإنشاء عامل تصفية وتعيينه Java فلتر web.xml.
Gurufilter.java
package demotest; import java.io.IOException; import java.util.Date; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class GuruFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest req = (HttpServletRequest) request; String ipAddress = req.getRemoteAddr(); System.out.println("IP Address "+ipAddress + ", Time is" + new Date().toString()); // pass the request along the filter chain chain.doFilter(request, response); } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { String guruparam = fConfig.getInitParameter("guru-param"); //Print the init parameter System.out.println("Test Param: " + guruparam); } }
Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> test</display-name> <filter> <description> </description> <display-name> GuruFilter</display-name> <filter-name>GuruFilter</filter-name> <filter-class>demotest.GuruFilter</filter-class> <init-param> <param-name>guru-param</param-name> <param-value>This is guru paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>GuruFilter</filter-name> <url-pattern>/GuruFilter</url-pattern> </filter-mapping>
شرح الكود
Gurufilter.java
Code السطر 17-32: هنا نستخدم طريقة "doFilter" حيث نحصل على كائن الطلب (في مثالنا كائن الطلب هو req (كائن HttpServletRequest)) ونحصل على العنوان البعيد للعميل ونطبعه على وحدة التحكم، وكذلك نطبع التاريخ والوقت على وحدة التحكم.
Code السطر 33-37: هنا نستخدم طريقة التهيئة حيث نأخذ معلمة التهيئة ونطبعها في وحدة التحكم.
Web.xml
Code السطر 10-11: خريطة التصفيةping في ملف web.xml لـ Guruقم بالتصفية باستخدام اسم الفئة Guruملف Filter.java حيث لدينا اسم الفلتر كالتالي: Guruفلتر وفئة الفلتر، وهو مسار الدليل الخاص بـ Guruفئة التصفية.
Code السطر 13-15: خريطةping يتم تعريف معلمة التهيئة المسماة guru-param والحصول على قيمتها الموجودة تحت علامة التصفية، لذلك تم تعريف معلمة التهيئة هذه لـ gurufilter.
الإخراج:
عند تنفيذ الكود أعلاه، ستحصل على الناتج التالي:
- الإخراج هو Test Param من المعلمة init
- وجلب عنوان IP وتاريخه ووقته.

