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 :

Communication JSP - Servlets


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Points : 23
    Points
    23
    Par défaut Communication JSP - Servlets
    Bonjour,

    Sur une page web jsp, j'ai un formulaire que je rempli, et dont j'envoie les données à ma servlet. Mais après, j'aimerais que ce que la servlet renvoie s'affiche dans un textarea html de la page jsp... Pouvez vous me dire comment faire ? J'ai trouvé entre applet/servlet ou appliJava/Servlet, mais pas entre jsp/servlet...

    Pour l'instant, j'ai ça pour ma page quote.jsp:

    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
     
    <html><head><title></title></head>
    <body>
     
    <form action="/testprototype/servlet/DoPostServletPrototype"
          method="POST"> 
    	<SELECT NAME="listmkdir">
    		<OPTION value="test99">test99</option> 
    		<OPTION value="test98">test98</option>
            </SELECT>
    	<input type="submit" value="OK">
    	<TEXTAREA rows="3" name="output"> 
            </TEXTAREA>
    </form>		
    </body>
    </html>
    Et ça pour le code de la servlet DoPostServletPrototype.java
    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
     
    public class DoPostServletPrototype extends HttpServlet {
      public void doPost (HttpServletRequest req, HttpServletResponse res) 
      	throws ServletException, IOException {
      	res.setContentType ("text/html");  
        String nom = req.getParameter("listmkdir");
        PrintWriter output = res.getWriter();
     
    //c'est ceci que je voudrait faire afficher dans le textarea de la page jsp, 
    //mais pour l'instant, il s'affiche dans une nouvelle page
        output.println ("On veut faire un " + nom); 
        output.flush();
        output.close();
      }
    }
    Pouvez-vous m'aider ? Merci beaucoup...

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    tu peux mettre une variable dans ta session

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String nom = req.getParameter("listmkdir");
    HttpSession session = request.getSession(true);	
    session.setAttribute("name", nom);
    et ensuite récupérer l attibut nom depuis ta JSP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String nom = session.getAttribut("name");
    out.println("<textarea>" + nom + "</textarea>";

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup, mais en fait, dans le jsp, il me fait une erreur, parce qu'il essaie de récupérer l'attribut de la session, mais au début, je n'ai meme pas encore lancé la servlet, du coup, la session n'existe pas, et il me fait un nullPointerException...

    Et puis j'ai du mal à comprendre, parce que dans la jsp, je devrais lui dire qu'il doit récupérer le nom à un certain moment (c'est à dire une fois que la servlet à fait le traitement, non ?)

    Et la session, je l'initialise dans la servlet, comment est-ce qu'il sait ce que c'est "session" dans le jsp ???

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    dans ta JSP :

    HttpSession session = request.getSession();

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Merci, mais non, ça ne fonctionne toujours pas...
    Il ne veut pas que je la déclare comme ça dans la jsp...

    En fait, je crois que le problème vient surtout du fait qu'il ne sais pas quand la jsp doit récupérer la valeur de la servlet...

  6. #6
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Qu'as tu deja fais?

    Tu pars d'une servlet pour arriver à une jsp?
    Ou tu pars d'un formulaire d'une jsp que tu valides, qui passe par une servlet et qui te redirige vers une autre page?
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Ben c'est ton deuxième cas :
    je pars d'un formulaire d'une jsp (qui contient à la fin du formulaire un textarea) qui passe par un servlet (qui fait un traitement) et je voudrais qu'au lieu de m'ouvrir une nouvelle page pour me donner le résultat sous forme de texte, la jsp le récupère pour l'afficher dans le texte area...

    Donc au final, l'utilisateur saisi des données dans le formulaire, et après avoir cliqué sur submit, voit le résultat dans le texterea en bas de sa page...

    Je ne sais pas si c'est très clair...
    J'ai donc le code que j'ai mis dans le premier message...

  8. #8
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Ok c'est un peu pas trop logique de faire ceci comme cela car tu fais tu transfere de données pour rien car le traitement pourrait très bien etre effectué en javascript.

    Pour ton cas je pense que tu devrais faire ce qui t'as été proposé.

    String nom = req.getParameter("listmkdir");
    HttpSession session = request.getSession(true);
    session.setAttribute("name", nom);
    Dans ta servlet.

    et dans ta jsp de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <TEXTAREA rows="3" name="output" value="
     
    <%=request.getSession().getAttribute("name")%>" >
     
     </TEXTAREA>

    Edit: Mais perso j'aurais vraiment fait ca en javascript
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup, mais en fait, quand je clique sur le submit du formulaire, et bien il m'ouvre une page blanche... et ne reste pas sur le formulaire de la jsp...

    Pour le javascript, en fait, c'est parce que quand je clique sur submit, je dois faire une grosse opération avec des connections ssh sur pas mal de serveurs, puis des opérations là dessus, donc en fait, je pense que ce sera plus simple en java...

    NB : Quand je suis sur ma page blanche et que je reviens en arrière, il affiche bien le bon truc dans le textarea... on avance donc quand meme... lol

    EDIT : c'est peut-être à cause du "res.setContentType ("text/plain");", non ? J'ai essayé de l'enlever, mais ça ne change rien...

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
      public void doPost (HttpServletRequest req, HttpServletResponse res) 
      	throws ServletException, IOException {  	
            String nom = req.getParameter("listmkdir");
            HttpSession session = request.getSession(true);
            session.setAttribute("name", nom);
            res.sendRedirect("/ta-page.jsp"); 
    }

  11. #11
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Euh, alors la de tete ca va etre chaud mais dans ta servlet, alors la fin il faut que tu mette l'url de ta page jsp sur laquelle tu veux acceder dans la response.

    Tiens j'ai trouvé ca vite fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getServletConfig().getServletContext().getRequestDispatcher("/jsptoserv/hello.jsp").forward(request, response);
    C'est surement pas le plus propre mais comme je vais devoir partir si ca marche tu pourras p'etre avancer.


    Edit : Sinon essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RequestDispatcher dispat = request.getRequestDispatcher("/index.jsp" ); 
    dispat.forward(request,response);
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Ok, merci beaucoup... ça marche !!!! En fait, vos trois solutions fonctionnent !!!! C'est vraiment super gentil à vous deux !!!!! Ouf, je suis bien contente que ça marche pour ce soir...

    Juste un petit truc qui me dérange, c'est que du coup, il recharge complètement la page... et qu'il perd tout ce qui était saisi dans les champs du formulaire...
    Auriez vous une solution plus simple que de stocker tous les parametre pour les re-afficher à chaque fois ?

    En tout cas, je vous remercie encore du fond du coeur...

  13. #13
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    bon, je vois pas à quoi sert ce que tu veux faire, comme marqué plus haut, si tu veux afficher le résultat de ton combo dans le textarea, pas la peine de passer par le serveur et donc par ta servlet, un petit javascript suffit.

    mais bon, si tu veux le faire, il suffit de rappeler ta page :

    ex : page de saisie : test.jsp

    ensuite, tu soumets le formulaire vers ta servlet puis tu crées un objet requestdispatcher en passant la valeur ton combo que tu as reçu dans l'objet response (response.setAttribute(cle,valeur) ou dans l'ojet session.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour ta réponse, je vais tester...

    Mais en fait, je me demande si j'ai bien compris quand vous me parliez de javascript...

    Si je comprend bien, je peux lancer ma servlet quand je clique sur le bouton du formulaire, alors, elle fera tout ce qu'elle doit faire, et que quand elle a fini, elle stocke le résultat...
    Puis du javascript contenu dans le jsp récupère ce résultat ?
    C'est ça que vous voulez dire ? Mais dans ce cas là, comment on peut faire ? C'est quelle donnée qu'il faut récupérer à partir du javascript ?

  15. #15
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    non, soit tu fais tout en javascript car le passage par le serveur n'est pas nécessaire.

    soit tu récupère la valeur de ton combo dans ta servlet et tu rediriges vers le meme jsp. dans ta jsp, tu fais en haut un :

    <%
    String recupValeur = request.getAttribute(""mavaleur");
    %>

    puis dans ton textarea : <%=recupValeur%> pour récupèrer la valeur. dans ce cas là, pas besoin de javascript.

Discussions similaires

  1. Communication JSP - Applet - Servlet
    Par badgone_69 dans le forum Applets
    Réponses: 1
    Dernier message: 11/07/2013, 12h19
  2. Communication JSP / Servlet
    Par JohnSheppard dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/12/2012, 18h37
  3. Communications entre Servlet et JSP
    Par GérardMartinelli dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 06/06/2010, 16h55
  4. [JSP][Servlet][Applet] communication Applet-Servlet-Jsp
    Par williamv dans le forum Applets
    Réponses: 1
    Dernier message: 06/04/2006, 16h32
  5. [jsp][servlet] communication jsp servlet
    Par villeneuvejsp dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 03/10/2005, 15h36

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