JSP फ़िल्टर क्या है?
- फ़िल्टर का उपयोग जावा वेब एप्लिकेशन की कार्यक्षमता को छानने के लिए किया जाता है।
- वे संसाधन तक पहुँचने का प्रयास करने से पहले क्लाइंट से अनुरोधों को रोकते हैं
- वे सर्वर से प्रतिक्रियाओं में हेरफेर करते हैं और क्लाइंट को भेजे जाते हैं।
JSP में फिल्टर के प्रकार
- प्रमाणीकरण फ़िल्टर
- डेटा संपीड़न फिल्टर
- एन्क्रिप्शन फ़िल्टर
- MIME श्रृंखला फ़िल्टर
- लॉगिंग फिल्टर
- छानने का काम
फ़िल्टर web.xml में परिभाषित किए गए हैं, और वे सर्वलेट या JSP के लिए एक मानचित्र हैं। जब JSP कंटेनर वेब अनुप्रयोग के साथ शुरू होता है, तो यह प्रत्येक फ़िल्टर का उदाहरण बनाता है जिसे परिनियोजन विवरणक में घोषित किया गया है।
फ़िल्टर विधि निम्नलिखित हैं:
-
सार्वजनिक शून्य doFilter (ServletRequest, ServletResponse, FilterChain)
इसे हर उस समय कहा जाता है, जब किसी संसाधन से अनुरोध करने पर प्रत्येक ग्राहक से अनुरोध / प्रतिक्रिया दी जाती है।
-
सार्वजनिक शून्य init (FilterConfig)
यह इंगित करना है कि फ़िल्टर को सेवा में रखा गया है
-
सार्वजनिक शून्य नष्ट ()
यह इंगित करने के लिए फ़िल्टर सेवा से निकाल दिया गया है।
उदाहरण:
इस उदाहरण में, हमने web.xml में फ़िल्टर और मैप किया है
गुरुफिल्टर.जावा
पैकेज डिमोटेस्ट;आयात java.io.IOException;आयात java.util.Date;आयात javax.servlet.Filter;आयात javax.servlet.FilterChain;आयात javax.servlet.FilterConfig;आयात javax.servlet.ServletException;आयात javax.servlet.ServletRequest;आयात javax.servlet.ServletResponse;आयात Javax.servlet.http.HttpServletRequest;सार्वजनिक वर्गसार्वजनिक शून्य doFilter (सर्वलेट अनुरोध, सर्वलेट प्रतिक्रिया, फ़िल्टरचैन श्रृंखला) IOException, ServletException {फेंकता है// TODO ऑटो-जनरेट विधि ठूंठHttpServletRequest req = (HttpServletRequest) अनुरोध;स्ट्रिंग ipAddress = req.getRemoteAddr ();System.out.println ("IP पता" + ipAddress + ", समय है"+ नई तिथि ();// फ़िल्टर श्रृंखला के साथ अनुरोध पास करेंchain.doFilter (अनुरोध, प्रतिक्रिया);}/ *** @ फ़िल्टर फ़िल्टर # init (FilterConfig)* /सार्वजनिक शून्य init (FilterConfig fConfig) ServletException को फेंकता है {स्ट्रिंग गुरुपूर्णम = fConfig.getInitParameter ("गुरु-परम");// init पैरामीटर प्रिंट करेंSystem.out.println ("Test Param: + guruparam);}}
वेब .xml
xml संस्करण = "1.0" एन्कोडिंग = "UTF-8"?><प्रदर्शन-नाम>परीक्षण प्रदर्शन-नाम><फ़िल्टर><वर्णन> विवरण><प्रदर्शन-नाम>गुरुफिल्टर डिस्प्ले-नाम><फ़िल्टर-नाम> गुरुफ़िल्टर फ़िल्टर-नाम><फ़िल्टर-वर्ग> demotest.GuruFilter फ़िल्टर-क्लास> <परम-नाम> गुरु-परम परम-नाम> यह गुरु सर्वोपरि है param-value> init-param> फ़िल्टर><फ़िल्टर-मैपिंग><फ़िल्टर-नाम> गुरुफ़िल्टर फ़िल्टर-नाम> / GuruFilter url-pattern> फ़िल्टर-मैपिंग>
कोड की व्याख्या:
गुरुफिल्टर.जावा
कोड लाइन 17-32 : यहां हम "doFilter" पद्धति का उपयोग कर रहे हैं, जहां हमें अनुरोध ऑब्जेक्ट मिल रहा है (हमारे उदाहरण में अनुरोध ऑब्जेक्ट req (HttpServletRequest ऑब्जेक्ट) है) और क्लाइंट का रिमोट पता प्राप्त करें और कंसोल पर प्रिंटिंग करें और प्रिंटिंग भी करें कंसोल पर दिनांक और समय।
कोड लाइन 33-37 : यहाँ हम init पद्धति का उपयोग कर रहे हैं जहाँ हम init पैरामीटर और प्रिंटिंग इनिट पैरामीटर को कंसोल में ले जा रहे हैं।
वेब .xml
कोड लाइन 10-11 - गुरुफिल्टर को वर्ग नाम गुरुफिल्टर.जवा के साथ मैप करना जहां हमारे पास फिल्टर-नाम गुरुफिल्टर और फिल्टर वर्ग है जो गुरुफिल्टर वर्ग का निर्देशिका पथ है
कोड लाइन 13-15 - गुरु-परम नाम के init पैरामीटर को मैप करना और उसका मान प्राप्त करना जो फ़िल्टर टैग के तहत रखा गया है इसलिए इस init-param को गुरुफिल्टर के लिए परिभाषित किया गया है
आउटपुट:
जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलते हैं:
- आउटपुट init पैरामीटर से टेस्ट परम है
- और आईपी एड्रेस, दिनांक और समय प्राप्त करना।