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 :

pb de javascript ds une servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Par défaut pb de javascript ds une servlet
    Bonjour,

    Alors voilà, j'essaye de récupéré une valeur entrée par l'utilisateur dans un prompt. Le prompt étant dans une servlet dont voici le code :

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();



    out.println("<html>");
    out.println("<head>");
    out.println("<title>Servlet essai</title>");

    out.println("</head>");
    out.println("<body>");

    float C=0;

    out.println("<script language=\"javascript\"> !C=prompt(\"hauteur :\" , \"\")</script>");

    out.println(C);

    out.println("</body>");
    out.println("</html>");
    Je sais pas comment faire pr récupéré la valeur C.
    Si qqn connaait la façon de faire, se serait génial !!!

  2. #2
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Par défaut
    Bon, voilà, j'ai réussi à récupérer ma valeur en String, mais comme il s'agit d'une hauteur, j'en ai besoin en float, mais j'ai une erreur quand j'exécute mon script.

    out.println("<script language=\"javascript\"> C=prompt(\"hauteur :\")</script>");
    float C2 = Float.parseFloat("<script language='Javascript'>document.write(C);</script>");
    out.println(C2);
    ERREUR :
    java.lang.NumberFormatException: For input string: "<script language='Javascript'>document.write(C);</script>"
    J'ai vérifié, je rentre un nombre, je peux l'afficher, il n'y a pas d'espaces, ni quoi que se soit d'autre, pourtant la méthode parseFloat ne fonctionne pas...

  3. #3
    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
    Franchement, tu trouves que ça ressemble à un float ça ?
    float C2 = Float.parseFloat("<script language='Javascript'>document.write(C);</script>");
    Il faudrait que tu te documentes un peu parce qu'il semble qu'il te manque pas mal de bases...
    Une fondamentale :
    - le javascript s'exécute côté client (navigateur, IE, Firefox, etc...)
    - la servlet s'exécute côté serveur

    Donc, le parseFloat que tu fais n'as aucun sens ici. Tu essayes de convertir la chaîne (en bleu) en float, ça va pas l'faire...

    De manière générale, si tu veux faire une application web à base de client léger (html), le mieux est de définir des pages JSP (un mélange d'html et de code java) et des servlets (contrôleurs) mis en relation par l'intermédiaire d'un formulaire
    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
     
    // Dans la page JSP
     
    <form action="nomLogiqueDeServlet">
    Saisissez un nombre : <input type="text" name="argument1"/>
    </form>
     
    // Dans la servlet
     
    public void service(HttpServletRequest request, HttpServletResponse response)
    {
       float arg1_float = 0;
       String arg1 = request.getParameter("argument1");
       if ( arg1 != null )
       {
          arg1_float = Float.parseFloat(arg1);
          ...
       }
     
       // Pour renvoyer vers une page JSP
       request.getRequestDispatcher("/chemin/maPage1.jsp").forward(request, response);
    }
    Voilà, j'espère que ça te guidera un peu, mais comme dit, cherche un bon tuto pour bien commencer, tu en trouveras sur ce forum

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Par défaut
    Je comprend pas pourquoi ce n'est pas possible, j'ai pu récupéré la valeur dans une autre variable. Il s'agit d'un String qui appartient maintenant a ma servlet.

    De ce que j'en sais, on peut transformer une chaine en float ac cette méthode, alors pourquoi pas là.

    String s = "<script language='Javascript'>document.write(C);</script>"

    out.println(s); //me donne mon nombre (une chaine, je suis d'accord)

    Donc s est une variable de ma servlet.
    Pourquoi je peux pas la transformer en float ?

  5. #5
    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
    Là, on est sur le serveur :
    Citation Envoyé par lolilola Voir le message
    String s = "<script language='Javascript'>document.write(C);</script>"
    System.out.println(s); // <- Rajoute cette ligne et regarde la console du serveur
    out.println(s); // <- Ici, tu écris sur la sortie standard (dans la page html)
    donc, après exécution et côté client, tu auras dans le code de ta page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script language='Javascript'>document.write(C);</script>
    alors que la page aura la valeur de la variable "C".

    Tu peux faire le test, regarde le source de la page dans ton navigateur
    (click droit + "Afficher la source" sous IE ou "Code source de la page" sous Firefox)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Par défaut
    Ok, j'ai a peu près compris.

    Donc la seule solution qu'il me reste est de passé par un formulaire.
    Je voulais éviter cette solution car je n'ai qu'une seule information à demander, mais tant pis, je vais faire comme ça puisque je n'ai pas d'autre choix.

Discussions similaires

  1. Objet javascript dans une servlet
    Par amine84 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/10/2008, 10h14
  2. Réponses: 1
    Dernier message: 27/12/2007, 09h18
  3. appeler une servlet depuis javascript
    Par root76 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 22/05/2007, 11h12
  4. Réponses: 3
    Dernier message: 05/04/2007, 10h57
  5. javascript dans une servlet
    Par 18Marie dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 22/08/2006, 08h42

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