+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Membre habitué
    Inscrit en
    mars 2002
    Messages
    560
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 560
    Points : 120
    Points
    120

    Par défaut [Servlet] Méthode Get : récupérer données de l'url

    Salut,

    Je souhaite récupérer des données contenues dans une trame http (URL) avec une servlet et je ne sais pas quelle méthode utiliser.

    Je passe mes informations ainsi :

    Comment ma servlet peut-elle les récupérer ?
    http://10.0.20.25:8080/servlets-examples/servlet/ExampleServlet?id=19400400678

    Merci d'avance.

    [ Modéré par Viena ]
    Déplacement vers un forum plus approprié
    Les Règles du Forum

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2004
    Messages : 46
    Points : 52
    Points
    52

    Par défaut

    C'est tout simple tu as la méthode suivante :
    Code :
    java.lang.String getParameter(java.lang.String name)
    qui te permet de faire ça.

    Elle se trouve dans l'interface ServletRequest qui est implementé par la classe HttpServletRequestWrapper (en autre)

  3. #3
    Membre habitué
    Inscrit en
    mars 2002
    Messages
    560
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 560
    Points : 120
    Points
    120

    Par défaut

    En fait c'est déjà ce que je fais, mais j'ai un message d'erreur disant que la servlet ne supporte pas la méthode get, comment cele se fait-il ?

    Voilà le code que j'utilise :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void doGet(HttpServletRequest req, HttpServletResponse resp, boolean st) throws ServletException, IOException {
    ...
    		PrintWriter out = resp.getWriter();
    		out.println("<html>");
    		out.println("<body>");
    		out.println("<head>");
    		out.println("</head>");
    		out.println("<body bgcolor=\"white\">");
     
    	                serialNb = req.getParameter("id");
    ...
    Y a-t-il une erreur ?
    Merci d'avance.

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2004
    Messages : 46
    Points : 52
    Points
    52

    Par défaut

    Est-ce que tu pourrais essayer de faire :
    Code :
    1
    2
    3
    4
    public void doPost(HttpServletRequest req, HttpServletResponse resp, boolean st) throws ServletException, IOException
    {
        doGet(req, resp, st);
    }
    Je n'y crois pas trop mais peut-être que c'est le doPost qui est appelé.

    Quoi qu'il en soit, pourrait tu afficher l'erreur exact que te sort le compilateur ?

  5. #5
    Membre habitué
    Inscrit en
    mars 2002
    Messages
    560
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 560
    Points : 120
    Points
    120

    Par défaut

    J'obtiens l'erreur suivante, donnée par le navigateur.

    "Etat HTTP 400 - La méthode HTTP GET n''est pas supportée par cette URL"

    De plus, j'ai essayé de placer le code ci-dessus dans la méthode "doPost", mais ça ne change rien visiblement.

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2004
    Messages : 46
    Points : 52
    Points
    52

    Par défaut

    Je crois que j'ai trouvé.

    En fait c'est tout con :

    Si je ne m'abuse la méthode doGet (tout comme la méthode doPost) ne prennent que deux paramètres (il n'y a pas le boolean à la fin) donc essaie :
    Code :
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException ...
    en gros la même chose mais sans le boolean

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2004
    Messages : 46
    Points : 52
    Points
    52

    Par défaut

    du coup tout le doPost c'est la même chose (mais si tu n'en n'as pas besoin ne definit pas la méthode)

  8. #8
    Membre habitué
    Inscrit en
    mars 2002
    Messages
    560
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 560
    Points : 120
    Points
    120

    Par défaut

    Effectivement, c'était cela, en fait je ne me servais pas de la servlet avec un GET jusqu'à présent, mais elle marchait en POST...

    Merci .

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2004
    Messages : 46
    Points : 52
    Points
    52

    Par défaut

    Pas de quoi.

    En fait ce qui se passait c'est que tu n'avais pas surchargé la fonction doGet.

    Si c'est OK pense au tag Résolu
    @+

  10. #10
    Membre du Club
    Inscrit en
    septembre 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 57
    Points : 49
    Points
    49

    Par défaut

    Salut,
    En phase de dev on a tendance à utiliser la methode GET, mais apres il vaut mieux penser à implementer POST. En effet, tu ne sera pas limiter par la longueur des valeur que tu passes en parametres et en plus les valeurs ne seront pas visibles directement dans l'URL.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •