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 :

Problème de RequestDispatcher


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut Problème de RequestDispatcher
    Bonjour,

    Je m'occupe d'une application web. Sur celle-ci, il y a une page ListAgentDeMonEntreprise.jsp où figure un tableau avec les agents de l'entreprise. Dans une colonne nommée action j'ai rajoutée un lien vers un nouvel écran jsp CopyAttributsAGent.jsp.

    J'ai donc crée la servlet CopyAttributsAgent.java et enrichi le web.xml comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <servlet>
        <servlet-name>CopyAttributsAgent</servlet-name>
        <servlet-class>servlet.Perimeter.CopyAttributsAgent</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>CopyAttributsAgent</servlet-name>
        <url-pattern>/CopyAttributsAgent</url-pattern>
      </servlet-mapping>
    Tout se passe bien lors de l'appel de la servlet dans l'écran de liste : la méthode doGet de la servlet CopyAttributsAgent.java est appelée et la page CopyAttributsAgent.jsp est bien affichée.
    Sur cette écran, une action "Copier" permet de soumettre un formulaire par la méthode post. Là encore tout fonctionne, la méthode doPost est bien appelée est exécutée.

    Seulement, à la fin de la méthode, j'insère ces trois lignes de code pour revenir à l'écran ListAgentDeMonEntreprise.jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    session.setAttribute("messageRetour", "Les attributs de l'agent ont été correctement copiés");
    RequestDispatcher rd = request.getRequestDispatcher("ListAgentDeMonEntreprise");
    rd.forward(request, response);
    Mais là rien ne se passe : j'ai une page blanche avec l'url http://localhost:8080/IDM/CopyAttributsAgent !!!!!!!!

    En débuggant, je vois qu'il n'appelle pas du tout la méthode doGet de la servlet ListAgentDeMonEntreprise!

    Je vérifie l'objet rd : la valeur du servletClass de l'objet wrapper est bien valorisé comme suit : servlet.Perimeter.ListAgentDeMonEntreprise. Ce qui correspond bien à la valeur présente dans le web.wml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <servlet>
        <servlet-name>ListAgentDeMonEntreprise</servlet-name>
        <servlet-class>servlet.Perimeter.ListAgentDeMonEntreprise</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>ListAgentDeMonEntreprise</servlet-name>
        <url-pattern>/ListAgentDeMonEntreprise</url-pattern>
      </servlet-mapping>
    J'avoue que là je sèche clairement! Quelqu'un aurait une idée pour résoudre le problème ou une piste de réflexion à me soumettre?

    Merci d'avance!

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Tu es sûr que ce n'est pas le cache du navigateur qui retourne le contenu de la page?

    Est-ce que tu vois passer des "304 Not Modified" dans tes outils de débuggage (fiddler, firebug, etc)? ou alors des 404 Not Found?

    Si tu forces le clean du cache et que tu recharges l'url, est-ce que le code backend est bien exécuté?
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Tu es sûr que ce n'est pas le cache du navigateur qui retourne le contenu de la page?

    Est-ce que tu vois passer des "304 Not Modified" dans tes outils de débuggage (fiddler, firebug, etc)? ou alors des 404 Not Found?

    Si tu forces le clean du cache et que tu recharges l'url, est-ce que le code backend est bien exécuté?
    Merci pour ta réponse!

    Non. J'ai nettoyé le cache du navigateur et j'ai le même problème. De plus, j'ai déployé le war sur le serveur de test et le problème est identique.

    Sinon, je n'ai pas d'outils de débuggage autre que celui par défaut d'Eclipse.

    Ce qui est bizarre c'est que l'url change après le forward() du RequestDispatcher. En effet, dans mon appli, les pages jsp sont inclus dans une page index.jsp.
    Du coup l'url est passée de http://localhost:8080/MonAppli/jsp/index.jsp à http://localhost:8080/MonAppli/CopyAttributsAgent !!!!? Alors qu'elle aurait du rester http://localhost:8080/MonAppli/jsp/index.jsp, vue que seule la jsp incluse change.

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Alors conseil, installe de toute urgence Fiddler + Firebug, quand on fait du web c'est même pas la peine d'essayer de comprendre ce qu'il se passe sans ces outils...

    Tu verras passer toutes les requêtes http et leurs réponse, avec les headers, les codes http, les content type, etc...

    Carrément indispensable

    Ensuite, des urls qui ne ressemblent pas à ce que tu attends, ça sent le problème de config... Tu peux essayer d'appeler "getRequestDispatcher("/index.jsp")", ou alors carrément envoyer un redirect à la place (mais c'est pas bien)...

    Sinon montre un peu la config
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Alors conseil, installe de toute urgence Fiddler + Firebug, quand on fait du web c'est même pas la peine d'essayer de comprendre ce qu'il se passe sans ces outils...

    Tu verras passer toutes les requêtes http et leurs réponse, avec les headers, les codes http, les content type, etc...

    Carrément indispensable

    Ensuite, des urls qui ne ressemblent pas à ce que tu attends, ça sent le problème de config... Tu peux essayer d'appeler "getRequestDispatcher("/index.jsp")", ou alors carrément envoyer un redirect à la place (mais c'est pas bien)...

    Sinon montre un peu la config
    Je vais essayer d'installer ces logiciels mais pas sur que je puisse (blocage firewall oblige!). Qu'est ce que tu entends par "montre un peu la config"?

    En attendant ta réponse, je vais essayer de rediriger vers index.jsp par requestDispatcher....

  6. #6
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Firebug devrait être installé sur toute les versions récente de Firefox (tappe F12 si quelque chose apparait c'est bon)
    Fiddler est un peu moins indispensable si tu as Firebug.
    Si tu es bloqué sur IE, regarde du côté des "Developer Tools" (toujours F12)

    Sinon, oui la config, c'est à dire TOUT le contenu de web.xml et des fichiers spring qui vont avec
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    programmation
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : programmation
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut cakejava
    Salut,essayer avec cette ligne de code
    this.getServletContext().getRequestDispatcher("/ListAgentDeMonEntreprise.jsp").forward(request, response);

Discussions similaires

  1. problème avec RequestDispatcher
    Par dragonfly80 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/01/2010, 21h47
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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