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 :

jsp/servlet envoi de parametres


Sujet :

Servlets/JSP Java

  1. #1
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut jsp/servlet envoi de parametres
    salut tout le monde.
    mon probleme parait tout bete mais pour moi ca bloque dur:
    j'ai une page jsp qui a deux liens vers une meme page servlet. en faite ce que je veux faire c'est si on clique sur le lien un j'envois une valeur vers la servlet pour identifier lelien clicque. un example vaut mieux que mes discours donc je vous montre ce que j'ai fait et voyez ce que vous pouvais pour m'aider:

    jsp code 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       <html>
             <a href="servlet?para=1"> lien 1</a>
             <a href="servlet?para=2"> lien 2</a> 
       </html>

    jsp code 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <%
        String para="lien unique";
        request.setAttribut("para",para);
    %>
       <html>
                  <a href="servlet"> lien unique</a> 
       </html>

    servlet code dans doPost()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      doPost()     
        {
            String arg=(String)request.getAttribut("para");
            System.out.println(para);
         }
    quelque soit le lien depuis le quelque j'envois j'obtient comme resultat avec System.out.printls(para) : null

    alors j'ai essaye l'inverse dans la servlet envoyer vers jsp avec dispatch et forward en ayant au prealable fait request.setAttribut
    et dans la jsp un simple requestGetattribut resutat ca marche comme sur des roulettes. mais je ne vois pas comment envoyer depuis jsp vers servlet.

    puis je avoir un ptit coup de pouce??

  2. #2
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    essaie avec request.getParameter a la pace de getAttribut

  3. #3
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    bon je test des que je rentre chez moi et je vous tiens au courant quelque soit le resultat.

  4. #4
    Membre confirmé
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 32
    Par défaut
    Essai plutôt de sauvegarder dans le contexte de ton Servlet:

    Dans jsp code 2
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     request.setAttribute("para",para);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     getServletContext().setAttribute("para",para);
    Dans ton doPost
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getAttribute("para");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getServletContext().getAttribute("para");
    ça doit marcher

  5. #5
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    rien ne marche j'ai toujours un

    null

    a l'affichage

  6. #6
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Comment as tu défini ta servlet ds ton web.xml ?

  7. #7
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <servlet>
        <description></description>
        <display-name>Login</display-name>
        <servlet-name>Login</servlet-name>
        <servlet-class>Login</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/Login</url-pattern>
      </servlet-mapping>

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 29
    Par défaut
    Bonjour,

    Peut être qu'en remplacant dans tes jsp, "servlet" par "Login" cela fonctionnerait mieux. (voir même "/Login")

    /Muzo

  9. #9
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Oui tout a fait le nom de ta servlet c'est Login et pas servlet.

  10. #10
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    je n'ai jamais dis que le nom de ma servlet c'etait servlet j'ai donne un example. ma servlet c'est bien Login et je fait bien
    Login?variable=valeur et ca donne null a la reception.
    de plus l'envois avec request me donne le meme resultat

  11. #11
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    bon apparemment personne n'a réussi a m'aider sur la question et ceux dans plusieurs forum. je suis donc contraint d'utiliser une méthode que je trouve sale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <input type="text" name="variable" value="<%= ma_variable %>" style="display:none">
    donc comme depuis un formulaire mes valeurs passent j'envois donc ma_variable atravers un formulaire et je cache l'entree a l'utilisateur pour qu'il ne puisse pas modifier.
    c'est pour le cas ou quelqu'un aurait le meme probleme que moi en attendant une reponse sur un des nombreux forum ou j'ai pose la meme question. des que j'ai une reponse je la mettrait partout.

  12. #12
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Pour passer un paramètre dans un lien, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <% String para="valeurDuParametre" ; %>
     
    <a href="<%="Login?para="+para%>">lien</a>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <%
      String para="valeurDuParametre" ;
      String url="Login?para="+para ;
    %>
     
    <a href="<%=url%>">lien</a>
    et dans la servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String para=request.getParameter("para") ;

  13. #13
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    ca marche sans le moindre probleme merci.
    mais cependant je comprend pas pourquoi request.setAttribut ne marche pas

  14. #14
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Quand la jsp s'affiche, la réponse a été construite et envoyée au navigateur et donc la requête est terminée.
    Lorsque tu cliques sur le lien pour exécuter la servlet Login, une nouvelle requête est envoyée.
    Ceci explique pourquoi la variable mise dans le scope request dans la jsp a toujours pour valeur null dans la servlet Login.
    Donc, pour que cela fonctionne avec un setAttribute et un getAttribute, il faudrait mettre la variable dans le scope session.

    Mais dans le cas d'un lien, il est plus simple et plus logique de passer la valeur de la variable en paramètre de la servlet comme indiqué précédemment.

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

Discussions similaires

  1. Envoi d'image JSP/servlet
    Par crippy dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 24/07/2012, 10h08
  2. [jsp][servlet]pb recuperation de parametre
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 23
    Dernier message: 19/11/2008, 09h10
  3. jsp-servlet==>envoi de mail
    Par Nivrae dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 30/04/2008, 15h24
  4. [JSP/Java] envoi d'une classe d'une servlet à des JSP
    Par scarabeailes dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/11/2007, 11h07
  5. Passage de parametres jsp->servlet
    Par jonnyboy dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/04/2007, 14h17

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