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 :

Passer d'une servlet à une autre


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2012
    Messages : 34
    Par défaut Passer d'une servlet à une autre
    Bonjour,

    Comme l'intitulé de mon post l'indique, je souhaite passer d'une servlet à une autre. J'y arrive sauf que ma deuxième servlet est automatiquement passée en POST, or je souhaite la faire passer via la méthode GET. Est-ce possible, si oui comment? J'ai rien trouvé sur internet ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getRequestDispatcher("deuxiemeServlet.do?id="+request.getParameter("id")).forward(request, response);
    Merci à tous.

  2. #2
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2012
    Messages : 34
    Par défaut
    Bonjour, personne ne sait comment spécifier à ma servlet d'appeler la fonction doGet plutôt que la fonction doPost ???
    Merci.

  3. #3
    Membre chevronné Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Salut.

    Je viens de voir une discussion, si l'anglais ne te rebute pas ici

    Apparemment, en collaboration avec un filtre, ça devrait tourner :
    la

    Après c'est un peu sortir le bazooka pour buter une mouche ...

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par allizou Voir le message
    Bonjour,

    Comme l'intitulé de mon post l'indique, je souhaite passer d'une servlet à une autre. J'y arrive sauf que ma deuxième servlet est automatiquement passée en POST, or je souhaite la faire passer via la méthode GET. Est-ce possible, si oui comment? J'ai rien trouvé sur internet ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getRequestDispatcher("deuxiemeServlet.do?id="+request.getParameter("id")).forward(request, response);
    Merci à tous.
    Normalement une servlet n'est pas conçue pour répondre à une autre, mais elle doit répondre à une requête HTTP, en revanche tu peux via un service métier ou un service applicatif définir une action qui sera appelée par une ou plusieurs servlet.

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2012
    Messages : 34
    Par défaut
    Merci pour votre aide, je vais regarder tout ça en détail.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    C'est tout à fait possible.

    Dans ton cas, il suffit de simplifier ton appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getRequestDispatcher("deuxiemeServlet.do?id="+request.getParameter("id")).forward(request, response);
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getRequestDispatcher("/deuxiemeServlet.do").forward(request, response);
    Comme tu utilises le même request, inutile de rajouter les paramètres, la deuxième servlet les aura également.

    Si ta servlet1 devait ajouter ou modifier les valeurs des paramètres, ce serait une autre affaire.
    Il faudrait alors prévoir de récupérer les "paramètres" comme ceci dans servlet2 (ou plus généralement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String value = request.getAttribute("nomParametre");
    if (value == null)
    {
       value = request.getParameter("nomParametre");
    }
    ...
    et dans servlet1 tu ferais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    request.setAttribute("nomParameter", maNouvelleValeur);
    request.getRequestDispatcher("/servlet2").forward(request, response);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Pour le coup du GET / POST, essaye include à la place de forward.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getRequestDispatcher("/servlet2").include(request, response);
    Raison :

    Forward will transfer the control to the target resource (servlet or JSP), without returning the control to the caller.

    Include will transfer the control to the target resource (servlet or JSP), but then returning the control to the caller after the execution.


    source :
    http://www.coderanch.com/how-to/java/ServletsFaq#3

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Non, dans tous les cas tu repasses par l'appelant.
    Avec include, la servlet B ne peut pas fermer le flux de réponse et ça permet à la servlet A de poursuivre l'écriture.
    Si derrière le forwad (servlet A) il n'y a pas d'écriture dans le flux de sortie, tu peux utiliser indifféremment include ou forward.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Passer des parametres d'une jsp à une servlet
    Par MAJIK_ENIS dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 30/10/2006, 23h39
  2. Réponses: 8
    Dernier message: 04/04/2006, 17h29
  3. [C#]Comment passer un parametre d une Form à l'autre ?
    Par ToxiZz dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/02/2006, 12h28
  4. Réponses: 6
    Dernier message: 08/01/2006, 16h26
  5. Réponses: 2
    Dernier message: 04/10/2005, 20h54

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