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 :

Problème lors de l'envoi de données entre servlet et JSP


Sujet :

Servlets/JSP Java

  1. #21
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    voici tout ma 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    package site;
     
    import java.io.IOException;
    import java.util.ArrayList;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import model.Model;
     
    /**
     * Servlet implementation class ControllerSite
     */
    public class ControllerSite extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	private Model<Site> mSite = new ModelSite();
     
        /**
         * @see HttpServlet#HttpServlet()
         */
        public ControllerSite() {
            super();
        }
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		addSite(request, response);
    	}
     
    	private void addSite(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		ArrayList<Site> sites = mSite.read("SELECT nomSite FROM site");
    		request.getSession().setAttribute("siteData", sites);
    		request.getRequestDispatcher("salle.jsp").forward(request, response);
    	}
     
    }

  2. #22
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    ah mais regarde ta servlet, tu crées un attribut de Session : c'est pas du tout pareil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().setAttribute("siteData", sites);
    il te faut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("siteData", sites);
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  3. #23
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    J'avais essayer les deux solutions comme un simple setAttribute() ne fonctionnais pas je me suis dit avec un getSession() peut être que ça marcherai mais dans les deux cas non. J'ai testé par désespoir comme je voie pas ou le problème se trouve.

    ça peut venir du faite que j'utilise la version 6 de tomcat?

  4. #24
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    non, ça existe depuis un moment le RequestDispatcher et le setAttribute sur la request.

    et si tu debug, ça t'affiches quoi ça dans la console ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // ....
    System.out.println("Liste  : " + sites.size());
    request.setAttribute("siteData", sites);
    // ....

    essaye au moins tout proprement une seule fois, car j'ai l'impression que tu as plein de tests dans tous les sens qui font que tu t'embrouilles plus qu'autre chose. Dans l'ordre :

    1 - ne pas mettre le instanceof ArrayList
    2 - ne pas utilser request.getSession().setAttribute();
    3 - mettre le System.out.println pour voir si la liste est peuplée et existe, car un objet "null", efface la variable (cf. la doc de setAttribute())


    As-tu récupéré mon projet ?
    (adapte le pour le faire fonctionner sous Tomcat 6, notamment les annotations à mettre sous forme de paramétrage dans le web.xml)
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  5. #25
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    j'ai fais tout ce que tu m'a demandé.
    Alors le size des attribute vaut 0. Je sysout n'affiche pas dans la console

    j'ai enlevé les intanceof et les getSession()

    Oui ton projet je l'ai tester, par contre ça m'a renvoyer null.

  6. #26
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Citation Envoyé par julia_m Voir le message
    j'ai fais tout ce que tu m'a demandé.
    Alors le size des attribute vaut 0. Je sysout n'affiche pas dans la console

    j'ai enlevé les intanceof et les getSession()

    Oui ton projet je l'ai tester, par contre ça m'a renvoyer null.
    si le sysout ne s'affiche pas c'est que tu ne passe simplement pas dans ta méthode ...

    comment ta servlet est-elle appelée ?
    Quelle est l'URL de ton navigateur ?

    Le problème vient bien d'ailleurs

    pour mon projet c'est normal, il faut que tu mettes des mappings d'URL dans le web.xml, car j'utilise les servlet 3.0 alors que tu n'es qu'en 2.5 avec Tomcat 6.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  7. #27
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    je l'ai bien fait le mapping

    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
        <description></description>
        <display-name>ControllerSite</display-name>
        <servlet-name>ControllerSite</servlet-name>
        <servlet-class>site.ControllerSite</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>site</servlet-name>
        <servlet-class>site.ControllerSite</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>ControllerSite</servlet-name>
        <url-pattern>/ControllerSite</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>site</servlet-name>
        <url-pattern>/salle</url-pattern>
      </servlet-mapping>
    Mon URL est le suivant
    http://localhost:8080/SalleReunion/salle.jsp

  8. #28
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    si tu "attaques" directement "salle.jsp", comment veux-tu que ça passe par ta Servlet ?

    Normalement l'URL doit être celle de ta Servlet

    http://localhost:8080/SalleReunion/salle


    et pas

    http://localhost:8080/SalleReunion/salle.jsp

    c'est donc normal que tu n'aies rien dans "request" avec setAttribute, puisque tu ne passes pas par ta Servlet
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  9. #29
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    Comment ça. Je ne comprends pas

  10. #30
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Citation Envoyé par julia_m Voir le message
    Comment ça. Je ne comprends pas
    c'est pourtant simple.

    En MVC, ce n'est pas ton navigateur qui appelle directement la page JSP, mais ta Servlet (en sous-jacent, et en masqué).

    Navigateur <---> Servlet <---> JSP

    La navigateur ne connait que la Servlet et donc son URL.
    Le navigateur ne doit pas appeler directement une page JSP.

    Toi tu as fait ça, et ta servlet ne fait pas partie de ton "triptique" :

    Navigateur <---> JSP

    (et la Servlet est perdue seule, liée à rien, bien que déclarée dans ton web.xml)


    Tu DOIS absolument lire ceci, car j'ai l'impression qu'il te manque certaines "bases" du développement web MVC en JAVA :

    http://tahe.developpez.com/java/baseswebmvc/
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  11. #31
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par julia_m Voir le message
    J'ai regarder le lien que tu m'a passé. J'ai configuré le web.xml de la même façon a part que je n'ai pas mis directement le lien de la vue ( page 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
    17
    18
    <servlet>
        <description></description>
        <display-name>ControllerSite</display-name>
        <servlet-name>ControllerSite</servlet-name>
        <servlet-class>site.ControllerSite</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>site</servlet-name>
        <servlet-class>site.ControllerSite</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>ControllerSite</servlet-name>
        <url-pattern>/ControllerSite</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>site</servlet-name>
        <url-pattern>/salle</url-pattern>
      </servlet-mapping>
    Dedans il y a bien ma servlet qui est ControllerSite, et ma vue qui est salle. J'ai un form dans ma page salle.jsp avec comme action ./salle.jsp. Donc le lien il doit le faire. Je ne vois pas ce que je pourrai faire de plus que ça.

    De plus j'ai testé lorsque j'ajoute un nouvelle personne. C'est avec une autre page, autre controller et autre vue mais ça marche bien, ça me rentre bien les données saisie dans la base de donnée. Mon URL est bien personne.jsp mais lorsque j'appui sur un bouton mon URL deviens la même sans le .jsp.

  12. #32
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    le problème c'est que ton action ne doit pas être "salle.jsp", mais "/salle" c'est à dire la Servlet et pas directement la page.

    C'est donc normal que tu ne passes pas par la servlet en l'état.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  13. #33
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    Comment je peux régler ce problème?

  14. #34
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    simplement en mettant action="salle" dans le formulaire ...
    en tout cas si la page qui contient ton formulaire est à la racine.

    Peux-tu montrer ton formulaire en entier ?
    Est-il en mode POST (car ta servlet répond au POST dans ton cas)
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  15. #35
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    mon formulaire est bien en method= post d'ou l'utilisation de la méthode doPost(). ça change absolument pas l'URL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="salle" class="validate" id="salle" name="salle" method="post">

  16. #36
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    la page qui contient ton formulaire est à la racine ?

    es-tu certaine que ta servlet est bien déclenchée ?
    tu passes bien dans le doPost ?
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  17. #37
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    Non ma servlet n'est pas appellée aucun message ne s'affiche dedans.

    Toutes mes pages sont dans le webContent

  18. #38
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Est-ce que tu peux montrer tout ton code :

    - page complète du formulaire
    - page complète pour ta vue
    - web.xml (même si tu l'a montré)
    - servlet

    le mieux : faire un .zip de ton projet et le poster ici pour que je t'aide.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  19. #39
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 130
    Points : 33
    Points
    33
    Par défaut
    J'ai trouvé un truc intéressant. J'ai fait la méthode doGet() dans la servlet COntrollerSite. Après j'ai lancer mon application, à la place de salle.jsp dans l'URL, j'ai mis COntrollerSite et c'est rentrer dans ma servlet.

  20. #40
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Citation Envoyé par julia_m Voir le message
    à la place de salle.jsp, j'ai mis COntrollerSite et c'est rentrer dans ma servlet.
    c'est ce que je dis depuis quelques moment déjà, il faut que tu attaques par la servlet et pas directement la page salle.jsp, depuis le navigateur

    peux-tu zipper ton projet et le mettre ici, sinon je ne pourrai pas t'aider plus.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/05/2014, 11h38
  2. Problème lors de l'envoi de données de flash à un script PHP
    Par Winchack dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 25/09/2008, 22h44
  3. Problème lors de l'envoi de données via laision RS 232
    Par Rastaforien dans le forum Langage
    Réponses: 9
    Dernier message: 26/06/2008, 11h54
  4. Problème lors de l'envoi de données via laison RS 232
    Par Rastaforien dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 23/06/2008, 16h36
  5. Réponses: 10
    Dernier message: 07/02/2007, 07h43

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