Problème RequestDispatcher

Discussions sur le développement de JSP, servlets, et Java en général.

Modérateur : Modérateurs

Avatar de l’utilisateur
julure
Nouveau membre
Messages : 3
Inscription : mar. 14 déc. 2004, 17:25

Messagepar julure » sam. 16 juil. 2005, 11:12

Bonjour,

je suis sur un bug depuis quelques jours, et je ne n'arrive pas à l'élucider.
Quelqu'un pourrait m'expliquer comment la soumission d'un formulaire en requête HTTP de type POST sur la servlet ci-dessous m'affiche les traces de doPost() ET doGet()?????????
merci de votre aide

Julien


Code : Tout sélectionner

public class Test extends HttpServlet {

    
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException  {
        System.err.println("test: passe par doGet()");
        getServletContext().getRequestDispatcher("/index2.jsp").forward(request, response);
        return;
    }
    
    
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
            System.err.println("test:passe par doPost");
            getServletContext().getRequestDispatcher("/index2.jsp").forward(request, response);
            return;
    }
        
    
}


voici le code de la page appelante:

Code : Tout sélectionner

<html>
<body>
<form method="post" action="test">
Login <input type="text" name="login">

Password <input type="text" name="password">

<input type="submit" value="Envoyer">
</form>
</body>
</html>


Par contre:
Si j'enlève l'implémentation du doGet dans la servlet et que je laisse uniquement l'implémentation du doPost(), ca marche. (je n'ai que la trace du doPost)

Si j'enlève dans le doPost, la ligne du requestDispatcher, ca march également.

Si je remets cette ligne, j'ai les deux traces.

J'en ai déduit que le requestDispatcher appelait la méthode doGet() si elle existe....
mais pourquoi????


Vous allez me dire: mais enlève la méthode doGet() si tu n'en as pas besoin... mais je ne peux pas, puisque dans le cas plus compliqué de mon application, ma servlet récupère des requêtes GET et POST.


Merci de votre aide
Julien

PS: je déploie sur Tomcat 5.5.9 mais j'ai essayé sur 4.0.3 même résultat.

Avatar de l’utilisateur
moukette
Nouveau membre
Messages : 4
Inscription : jeu. 18 août 2005, 10:58
Contact :

Messagepar moukette » jeu. 18 août 2005, 16:43

je ne sais pas si ca t'aidera mais quand tu affiche ta servlet la premiere fois tu es en get, donc c normal qu'il t'affiche ton premier message, celui qui est dans le post. Par contre si apres il s'affiche une deuxieme fois lorsque tu clique sur ton formulaire la je trouve ca bizarre. Donc si ton message du poste s'affiche plus d'une fois j'attend la reponse comme toi. :huh:


Revenir vers « Java »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité