Filtertoewijzing in Web.xml met JSP-servletvoorbeeld

Wat is JSP-filter?

  • Filters in web.xml worden gebruikt voor het filteren van de functionaliteit van het Java web applicatie.
  • Ze onderscheppen de verzoeken van de klant voordat ze proberen toegang te krijgen tot de bron
  • Ze manipuleren de antwoorden van de server en sturen deze naar de client.

Soorten filters in JSP

  • Authenticatiefilters
  • Gegevenscompressiefilters
  • Encryptiefilters
  • MIME-ketenfilters
  • Logboekfilters
  • Tokeniserende filters

Filters worden gedefinieerd in web.xml en vormen een toewijzing voor servlet- of JSP. Wanneer de JSP-container start met de webtoepassing, wordt er een exemplaar gemaakt van elk filter in web.xml dat is gedeclareerd in de implementatiedescriptor.

JSP-filtermethoden

Following zijn de filtermethoden:

Publieke leegte doFilter(ServletRequest,ServletResponse, FilterChain)

Dit wordt elke keer aangeroepen wanneer een verzoek/antwoord wordt doorgegeven van elke client wanneer dit wordt aangevraagd vanuit een bron.

Publieke leegte init(FilterConfig)

Dit is om aan te geven dat het filter in JSP in gebruik is genomen

Openbare leegte vernietigen()

Dit om aan te geven dat het filter buiten gebruik is gesteld.

Voorbeeld

In dit voorbeeld hebben we een filter gemaakt en een Java web.xml-filter toegewezen

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>

Verklaring van de code

Gurufilter.java

Coderegel 17-32: Hier gebruiken we de "doFilter" -methode waarbij we een verzoekobject ophalen (in ons voorbeeld is het verzoekobject req (HttpServletRequest-object)) en het externe adres van de client ophalen en afdrukken op de console en ook de datum en tijd afdrukken op de troosten.

Coderegel 33-37: Hier gebruiken we de init-methode waarbij we de init-parameter gebruiken en de init-parameter in de console afdrukken.

Web.xml

Coderegel 10-11 – Filtertoewijzing in web.xml voor GuruFilter met de klassenaam GuruFilter.java, waarbij we de filternaam hebben als GuruFilter en een filterklasse die het mappad is van de GuruFilter-klasse

Coderegel 13-15 – Het in kaart brengen van de init-parameter met de naam guru-param en het verkrijgen van de waarde ervan die onder de filtertag wordt geplaatst, zodat deze init-param is gedefinieerd voor gurufilter

Output:

Wanneer u de bovenstaande code uitvoert, krijgt u het volgendewing output:

JSP-filtermethoden

  • De uitvoer is Test Param van de init-parameter
  • En het ophalen van het IP-adres, de datum en het tijdstip ervan.