Web.xml में फ़िल्टर मैपिंग

जेएसपी फ़िल्टर क्या है?

  • web.xml में फ़िल्टर का उपयोग फ़िल्टरिंग कार्यक्षमता के लिए किया जाता है Java वेब एप्लीकेशन।
  • वे संसाधन तक पहुँचने का प्रयास करने से पहले क्लाइंट से आने वाले अनुरोधों को रोक लेते हैं
  • वे सर्वर से प्राप्त प्रतिक्रियाओं में हेरफेर करते हैं और उन्हें क्लाइंट तक भेजते हैं।

JSP में फ़िल्टर के प्रकार

  • प्रमाणीकरण फ़िल्टर
  • डेटा संपीड़न फ़िल्टर
  • एन्क्रिप्शन फ़िल्टर
  • MIME श्रृंखला फ़िल्टर
  • लॉगिंग फ़िल्टर
  • टोकनाइज़िंग फ़िल्टर

फ़िल्टर web.xml में परिभाषित किए गए हैं, और वे सर्वलेट या के लिए एक मैप हैं JSPजब JSP कंटेनर वेब अनुप्रयोग के साथ शुरू होता है, तो यह web.xml में प्रत्येक फ़िल्टर का उदाहरण बनाता है जिसे परिनियोजन विवरण में घोषित किया गया है।

JSP फ़िल्टर विधियाँ

फ़िल्टर विधियाँ निम्नलिखित हैं:

सार्वजनिक void doFilter(ServletRequest, ServletResponse, FilterChain)

इसे हर बार तब बुलाया जाता है जब किसी संसाधन से अनुरोधित अनुरोध/प्रतिक्रिया प्रत्येक क्लाइंट से पारित की जाती है।

सार्वजनिक शून्य प्रारंभ (फ़िल्टर कॉन्फ़िगरेशन)

यह इंगित करता है कि JSP में फ़िल्टर को सेवा में रखा गया है

सार्वजनिक शून्य नष्ट()

यह संकेत देता है कि फ़िल्टर को सेवा से हटा दिया गया है।

उदाहरण

इस उदाहरण में, हमने फ़िल्टर बनाया है और मैप किया है Java web.xml फ़िल्टर

गुरुफिल्टर.जावा

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);
	}
}

वेब.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>

कोड की व्याख्या

गुरुफिल्टर.जावा

कोड लाइन 17-32यहां हम "doFilter" विधि का उपयोग कर रहे हैं जहां हम अनुरोध ऑब्जेक्ट प्राप्त कर रहे हैं (हमारे उदाहरण में अनुरोध ऑब्जेक्ट req(HttpServletRequest ऑब्जेक्ट) है) और क्लाइंट का दूरस्थ पता प्राप्त कर कंसोल पर प्रिंट कर रहे हैं और कंसोल पर दिनांक और समय भी प्रिंट कर रहे हैं।

कोड लाइन 33-37यहां हम init विधि का उपयोग कर रहे हैं जहां हम init पैरामीटर ले रहे हैं और कंसोल में init पैरामीटर प्रिंट कर रहे हैं।

वेब.xml

कोड लाइन 10-11: गुरुफ़िल्टर के लिए web.xml में फ़िल्टर मैपिंग, जिसका वर्ग नाम गुरुफ़िल्टर.जावा है, जहाँ हमारे पास फ़िल्टर-नाम गुरुफ़िल्टर है और फ़िल्टर वर्ग जो गुरुफ़िल्टर वर्ग का निर्देशिका पथ है

कोड लाइन 13-15: गुरु-पैरामीटर नामक इनिट पैरामीटर को मैप करना और इसका मान प्राप्त करना जिसे फ़िल्टर टैग के अंतर्गत रखा गया है, इसलिए इस इनिट-पैरामीटर को गुरुफ़िल्टर के लिए परिभाषित किया गया है

आउटपुट:

जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्नलिखित आउटपुट मिलता है:

JSP फ़िल्टर विधियाँ

  • आउटपुट init पैरामीटर से Test Param है
  • और उसका आईपी पता, दिनांक और समय प्राप्त करना।