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 :
- La sortie est Test Param du paramètre init
- Et récupérer l'adresse IP, la date et l'heure de celle-ci.