Filterkaartping in Web.xml

Wat zijn JSP-filters?

  • 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

Hieronder staan โ€‹โ€‹de filtermethoden:

Publieke void 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 in kaart gebracht Java web.xml-filter

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

Code Lijn 17-32:Hier gebruiken we de โ€œdoFilterโ€-methode waarbij we het aanvraagobject ophalen (in ons voorbeeld is het aanvraagobject req(HttpServletRequest object)) en het externe adres van de client ophalen en op de console afdrukken, en ook de datum en tijd op de console afdrukken.

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

Web.xml

Code Lijn 10-11: Filterkaartping in web.xml voor GuruFilteren met de klassenaam GuruFilter.java waarin we filter-name hebben als GuruFilter en filterklasse, dat is het mappad van GuruFilterklasse

Code Lijn 13-15: Wereldmapping De init-parameter heet guru-param en de waarde ervan wordt onder de filter-tag geplaatst. Deze init-param is dus gedefinieerd voor gurufilter.

Output:

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer:

JSP-filtermethoden

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

Vat dit bericht samen met: