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 :

Envoi d'une requête POST à partir d'un client telnet!


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mumu27
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 213
    Par défaut Envoi d'une requête POST à partir d'un client telnet!
    Bonjour,

    j'essaye d'envoyer une requête POST, pour cela je démarre le serveur J2EE et je lance la commande à partir d'une fenêtre de commande :

    Ensuite je tape:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    POST /Ch05/WEB-INF/classes/web/Login HTTP/1.0
    Content-type: application/x-www-form-urlencoding
    Content-length: 40
    username=sebmuller&password=esprit27
    Mon programme Login.java a déjà été testé et fonctionne:

    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
    package web;
     
    import javax.servlet.http.*;
    import java.io.*;
     
    public class Login extends HttpServlet {
      public void doPost(HttpServletRequest request,
      					 HttpServletResponse response)
      {
        String username = request.getParameter("username");
        try {
    	  response.setContentType("text/html");
    	  PrintWriter writer = response.getWriter();
    	  writer.println("<html><body>");
    	  writer.println("Merci, " + username +
    	  				 ". Vous êtes maintenant enregistré dans le système.");
    	  writer.println("</body></html>");
    	  writer.close();
    	} catch (Exception e) {
    	  e.printStackTrace();
    	}
      }
    }
    Le Login.class se trouve dans le répertoire:

    C:\J2EE\Ch05\WEB-INF\classes\web
    Cependant rien ne se passe, après avoir tapé deux fois sur entrée je n'ai pas l'impression d'avoir envoyé la requête, car aucun message de retour.

    Pouvez-vous m'aider SVP, peut-être n'ai-je pas tapé les bonnes commandes ou faut-il se mettre sous un répertoire particulier?

    Merci d'avance.

    mumu27!

  2. #2
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Je t'invite à revoir les bases d'une application Web
    qu'est ce qu'un contexte applicatif et comment deployer une application sur un serveur celon celui que tu utilises.

    Ta servlet est-elle déclarée dans le web.xml ?(mapper la servlet login avec le chemin /login)
    ton application es-elle bien déployée sur le serveur ?
    Connais tu le contexte applicatif de ton application ?

    une fois que tu en seras là l'url d'accès à l'application sera :
    http://localhost:9080/contextApllicatif/login

    dernière chose teste ton appplication dans un navigateur avant de vouloir tester avec telnet,Il faut donc que tu définisse le doGet dans ta servlet que tu peux éventuellement rediriger en appelant le doPost

  3. #3
    Membre éclairé Avatar de mumu27
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 213
    Par défaut
    Bonjour,

    j'ai crée une page HTML ci-dessous (login.html), contenant un formulaire envoyant une requête POST à la servlet :

    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>Enregistrement</title>
      </head>
     
      <body>
        <h1>Enregistrement</h1>
     
        Veuillez entrer votre nom d'utilisateur et votre mot de passe
        <form action="/Ch05/Login" method="POST">
          <p><input type="text" name="username" length="40">
          <p><input type="password" name="password" length="40">
          <p><input type="submit" name="Enregistrer">
        </form
      </body>
    </html>
    Pour le déploiement de mon application j'utilise un serveur J2EE de sun ou Apache Tomcat. Dans le premier cas le web.xml est généré, dans le deuxième cas il se présente de cette façon:

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     
    <!-- Descripteur de déploiement de l'exemple de filtre -->
     
      <display-name>J2EE Chapitre 5</display-name>
      <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>web.Login</servlet-class>
      </servlet>
     
      <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/Login</url-pattern>
      </servlet-mapping>
     
    </web-app>
    Ensuite après avoir déployé l'application, j'ouvre le navigateur et je tape l'adresse http://localhost:8080/Ch05/login.html.

    Cet exemple fonctionne très bien, donc je suppose que ma servlet fonctionne, cependant j'aurais voulu la tester aussi sur un client telnet.
    En fait voici l'énoncé de l'exercice:
    A partir d'un des exemples de servlets de ce chapitre acceptant les requêtes POST, essayeez d'envoyer une requête POST à partir d'un client Telnet. Vous devrez indiquer la valeur de l'en-tête content-length.
    Là j'ai essayé de trouver un moyen de procéder, mais je n'ai pas l'impression que cela marche.
    Si vous avez une idée, merci d'avance.

    mumu27!

  4. #4
    Membre éclairé Avatar de mumu27
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 213
    Par défaut envoi requête POST
    Bonjour,

    maintenant j'envoie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    POST /Ch05/Login HTTP/1.0
    Content-type: application/x-www-form-urlencoding
    Content-length: 40
    Cela marche beaucoup mieux, car là je m'adresse au fichier login.html qui envoie la requête à la servlet, mais les données sont à null. En fait je voudrais envoyer les données ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    username=sebmuller&password=esprit27&submit=Enregistrer
    En fait j'ai essayé ceci aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    POST /Ch05/Login HTTP/1.0
    Content-type: application/x-www-form-urlencoding
    Content-length: 40
    username=sebmuller&password=esprit27&submit=Enregistrer
    Ca ne marche pas, il n'envoie rien et se bloque, peut-être ai-je oublié quelque chose.
    Voici le programme HTML :

    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>Enregistrement</title>
      </head>
     
      <body>
        <h1>Enregistrement</h1>
     
        Veuillez entrer votre nom d'utilisateur et votre mot de passe
        <form action="/Ch05/Login" method="POST">
          <p><input type="text" name="username" length="40">
          <p><input type="password" name="password" length="40">
          <p><input type="submit" name="Enregistrer">
        </form
      </body>
    </html>
    Le web.xml :

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     
    <!-- Descripteur de déploiement de l'exemple de filtre -->
     
      <display-name>J2EE Chapitre 5</display-name>
      <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>web.Login</servlet-class>
      </servlet>
     
      <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/Login</url-pattern>
      </servlet-mapping>
     
    </web-app>
    Je ne sais pas trop ce qu'il manque, merci d'avance!

    mumu27

  5. #5
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Et comme ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    POST /Ch05/Login?username=sebmuller&password=esprit27&submit=Enregistrer HTTP/1.0
    Content-type: application/x-www-form-urlencoding
    Content-length: 40

  6. #6
    Membre éclairé Avatar de mumu27
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 213
    Par défaut
    Merci, en effet, il fallait mettre les paramètres au début et non à la fin.

    mumu27!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/03/2010, 17h33
  2. Envoyer une requête POST à partir d'un e-mail
    Par Hobit dans le forum Langage
    Réponses: 9
    Dernier message: 12/05/2009, 15h08
  3. Envoi d'une requête HTTP POST
    Par Alexey dans le forum Langage
    Réponses: 4
    Dernier message: 10/05/2009, 20h35
  4. Réponses: 6
    Dernier message: 11/07/2008, 09h34
  5. [Servlet] envoie d'une requête
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/06/2004, 10h43

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