IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Test d'un filtre de servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Par défaut Test d'un filtre de servlet
    Bonjour,

    J'ai essayé de créer un filtre lié à une servlet afin d'essayer de comprendre comment cela fonctionne. J'arrive à utililser mon filtre mais par contre je n'arrive pas à récupérer la valeur d'un paramètre déclaré dans le fichier web.xml de mon contexte.

    L'exemple est tout bête, il doit simplement permettre de modifier la réponse générer par la servlet en lui ajoutant la chaîne de caractère définit comme paramètre dans le fichier web.xml.

    Voici mon fichier web.xml :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 
    <web-app> 
     
    	<display-name>Exemple3-Servlet</display-name> 
     
    	<filter>
    		<filter-name>monFiltre</filter-name>
    		<description>Compte le nombre d'acces a la Servlet</description>
    		<filter-class>FiltreTest</filter-class>
    		<init-param>
    			<param-name>monParam</param-name>
    			<param-value>salut</param-value>
    		</init-param>
    	</filter>
     
    	<filter-mapping>
    		<filter-name>monFiltre</filter-name>
    		<servlet-name>exemple3</servlet-name>
    	</filter-mapping>
     
    	<servlet> 
    		<servlet-name>exemple3</servlet-name> 
    		<servlet-class>NomPrenomAge</servlet-class> 
    	</servlet> 
    	<servlet-mapping> 
    		<servlet-name>exemple3</servlet-name> 
    		<url-pattern>/exemple3</url-pattern> 
    	</servlet-mapping> 
     
    </web-app>

    et voici la classe "filtre" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    public class FiltreTest implements Filter {
     
    	private FilterConfig filterConfig;
     
    	public void init(FilterConfig filterConfig) throws ServletException {
     
    		this.filterConfig = filterConfig;
    	}
     
    	public void destroy() {
     
    		this.filterConfig = null;
    	}
     
    	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
     
    		if (this.filterConfig == null)
    			return;
     
    		StringWriter sw = new StringWriter();
    		PrintWriter writer;
    		writer = response.getWriter();
     
    		String c = (String)filterConfig.getServletContext().getAttribute("monParam");
    		writer.println("<html>--------------------------------------");
    		writer.println("Chaîne supplémentaire : " + c );
    		writer.println("--------------------------------------");
    		writer.flush();
    		System.out.println(sw.getBuffer().toString());
    		chain.doFilter(request,response);
    	}
     
    }
    Ma servlet s'affiche correctement si ce n'est un "null" à la place de la valeur de mon paramètre.

    Il y a apparemment un petit passage que je n'ai pas compris, auriez-vous une explication ?

    Merci d'avance !

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String monParam = filterConfig.getInitParameter("monParam") ;

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Par défaut
    Citation Envoyé par c_nvy
    Essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String monParam = filterConfig.getInitParameter("monParam") ;
    Effectivement maintenant ça fonctionne !

    Merci bcp, a+

  4. #4
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Citation Envoyé par hel22
    ...

    L'exemple est tout bête, il doit simplement permettre de modifier la réponse générer par la servlet en lui ajoutant la chaîne de caractère définit comme paramètre dans le fichier web.xml.
    Je suis d'accord avec la réponse précédante. Seulement, tu parles de modifier la réponse faite par la servlet.

    Il y a une petit confusion, le filtre agit sur la requête envoyée à la servlet et pas l'inverse.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Par défaut
    Citation Envoyé par fabszn
    Je suis d'accord avec la réponse précédante. Seulement, tu parles de modifier la réponse faite par la servlet.

    Il y a une petit confusion, le filtre agit sur la requête envoyée à la servlet et pas l'inverse.
    Mais le filtre ne peut-il pas également agir sur la réponse ?

    En fait je modifie la réponse avant même que la servlet n'ait pu y "écrire" quelque chose.

  6. #6
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Oui en fait, tu as raison!
    L'objet response fournie dans le filtre est le même que celui accessible dans la servlet.

    Maintenant les modifs que tu fais dans le filtre pourrais être faites dans la servlet elle même.

    Je ne suis pas sur que le filtre ai un grand intéret dans ce cas là.

  7. #7
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Par défaut
    Citation Envoyé par fabszn
    Hello,

    Oui en fait, tu as raison!
    L'objet response fournie dans le filtre est le même que celui accessible dans la servlet.

    Maintenant les modifs que tu fais dans le filtre pourrais être faites dans la servlet elle même.

    Je ne suis pas sur que le filtre ai un grand intéret dans ce cas là.
    Ah non ça c'est sur ... ça ne sert même à rien dans ce contexte mais c'était juste histoire d'écrire un 1er filtre et de comprendre un peu le mécanisme de ces derniers.

  8. #8
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    En tout cas, tu as raison!!

    Il n'y a pas de bon apprentissage , sans un bon "testage"


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. test multiple avec filtre couleur
    Par Kedash dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/05/2011, 20h43
  2. Filtre et servlet
    Par nasix dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/10/2008, 16h43
  3. Filtre de servlet
    Par ybonanni dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/12/2006, 09h38
  4. [Filtre de Servlet]Gerer les authorisations d'accès
    Par K-Kaï dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/07/2006, 09h34
  5. [Filtre de Servlet] Accès à un dossier
    Par K-Kaï dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/07/2006, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo