Cartographie des filtres dans Web.xml

Qu'est-ce que les filtres JSP ?

  • Les filtres du fichier web.xml sont utilisés pour filtrer la fonctionnalité du Java application Web.
  • Ils interceptent les requêtes du client avant d'essayer d'accéder à la ressource
  • Ils manipulent les réponses du serveur et les envoient au client.

Types de filtres dans JSP

  • Filtres d'authentification
  • Filtres de compression de données
  • Filtres de chiffrement
  • Filtres de chaîne MIME
  • Filtres de journalisation
  • Filtres de tokenisation

Les filtres sont définis dans web.xml et constituent une carte vers le servlet ou JSP. Lorsque le conteneur JSP démarre avec l'application Web, il crée l'instance de chaque filtre dans web.xml qui a été déclaré dans le descripteur de déploiement.

Méthodes de filtrage JSP

Voici les méthodes de filtrage :

Public void doFilter(ServletRequest, ServletResponse, FilterChain)

Ceci est appelé à chaque fois qu'une demande/réponse est transmise par chaque client lorsqu'elle est demandée à une ressource.

Initialisation vide publique (FilterConfig)

Ceci indique que le filtre dans JSP est mis en service

Détruire le vide public ()

Ceci indique que le filtre a été mis hors service.

Exemple

Dans cet exemple, nous avons créé un filtre et mappé dans Java filtre 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>

Explication du code

Gurufilter.java

Ligne de code 17-32:Ici, nous utilisons la méthode « doFilter » où nous obtenons l'objet de requête (dans notre exemple, l'objet de requête est req (objet HttpServletRequest)) et obtenons l'adresse distante du client et l'imprimons sur la console et imprimons également la date et l'heure sur la console.

Ligne de code 33-37: Ici, nous utilisons la méthode init où nous prenons le paramètre init et imprimons le paramètre init dans la console.

Web.xml

Ligne de code 10-11 : Mappage de filtre dans web.xml pour GuruFilter avec le nom de classe GuruFilter.java où nous avons le nom de filtre comme GuruFilter et la classe de filtre qui est le chemin du répertoire de la classe GuruFilter

Ligne de code 13-15 : Mappage du paramètre init nommé guru-param et obtention de sa valeur qui est placée sous la balise filter afin que ce init-param ait été défini pour gurufilter

Sortie :

Lorsque vous exécutez le code ci-dessus, vous obtenez le résultat suivant :

Méthodes de filtrage JSP

  • La sortie est Test Param du paramètre init
  • Et récupérer l'adresse IP, la date et l'heure de celle-ci.