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 :

Récupérer variable dans JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut Récupérer variable dans JSP
    Bonjour,

    J'ai un probleme lors de la récupération de ma variable j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Class.forName(driverClass).newInstance();
    con = DriverManager.getConnection(connectionURL, userID, userPassword);
    
    ResultSet rs      = null;
    String sql = "SELECT * FROM matable"; 
    
    Statement stmt2 = con.createStatement();             
    rs = stmt2.executeQuery(sql); 
    while (rs.next()) 
    { mavar= rs.getString("monchamps"); } 
    request.setAttribute("monchamps", mavar);
    rs.close();
    stmt2.close();
    et dans ma jsp, j'intègre bien ma classe java,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <%MaClasse MaVar = (MaClasse)request.getAttribute(mavar);%>
    <%=MaVar %>
    Mais cela ne fonctionne pas... Comment faire pour que dans ma JSP j'obtienne le résultat de ma query faite dans ma classe ?

    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    d'abord c'est "monchamp" et pas mavar qu'il faut mettre. Ensuite, dont code de récupération SQL, il se situe ou, comment est-il appelé?

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    Salut,

    Merci pour ta réponse,

    Ensuite, dont code de récupération SQL, il se situe ou, comment est-il appelé?
    Il est dans une classe, et je voudrais transferer le résultat de ma requete vers la JSP suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //appel de ma classe
    <%@ page import="monpackage.MaClasse" %>
    <%MaClasse MaVar = (MaClasse)request.getAttribute("monchamps");%>
    <%=MaVar %>
    Donc pour toi dans ma page jsp ça devrait ceci ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comment tu appelle ce code? Comment tu gère le passage depuis ce code vers la JSP?

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    comment tu appelle ce code? Comment tu gère le passage depuis ce code vers la JSP?
    Que veux tu dire ? comment j'appelle la classe dans la JSP ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comment le code est-il appelé avant de passer dans ta JSP? tu passe par une Servlet?

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    package monpackage;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
     
    /**
    * @web:filter name="HitCounter"
    * @web:filter-mapping url-pattern="*.do"
    * 
    */
     
    public class HitCounter implements Filter {
     
        public void init(FilterConfig filterConfig) throws ServletException {}
        public void destroy() {}
     
        public void doFilter(ServletRequest request, ServletResponse response, 
        		FilterChain chain) throws IOException, ServletException
        {
     
     
        String driverClass    = "oracle.jdbc.driver.OracleDriver";
        String connectionURL  = "jdbc:oracle:thin:@maBDD";
        String userID         = "Username";
        String userPassword   = "Password";
        Connection   con                   = null;
     
     
     
        try {
     
                Class.forName(driverClass).newInstance();
               con = DriverManager.getConnection(connectionURL, userID, userPassword);
            } catch (ClassNotFoundException e) {e.printStackTrace();} 
    		  catch (InstantiationException e) {e.printStackTrace();} 
    		  catch (IllegalAccessException e) {e.printStackTrace();} 
    		  catch (SQLException e) {e.printStackTrace();}
     
     
            // requete select
            ResultSet rs      = null;
            String sql = "SELECT ID FROM TBL_H"; 
     
            try {
     
               Statement stmt2 = con.createStatement();             
               rs = stmt2.executeQuery(sql); 
                while (rs.next()) { 
                	hits = rs.getString("ID");  
                } 
     
                   request.setAttribute("ID", hits);
     
    			  rs.close();
                  stmt2.close();
            } catch (SQLException e) { e.printStackTrace(); }
     
            try {con.close();} catch (SQLException e) {e.printStackTrace();}        
            chain.doFilter(request, response);
     
        }
      }
    Voici mon code, qui est appelé pour toute les url de type : *.do
    Cependant je n'arrive pas à afficher le resultat de ma query dans ma page JSP. J'ai mis un request.SetAttribute, et j'ai essayé de faire un request.GetAttribute dans ma JSP, mais rien à faire ... impossible de récupérer le resultat de ma requete dans ma JSP...

    Merci pour votre aide

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ut fais bien request.getAttribute("ID") dans la page jsp?


    PS: coté performances, le code de ta JSP est affreux

  9. #9
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    ut fais bien request.getAttribute("ID") dans la page jsp?
    PS: coté performances, le code de ta JSP est affreux
    Oui tu as le code de ma jsp, vu que tu as étudié les performances de ma JSP...

    PS : si tu as mieux, je suis preneur

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    je voulais dire le code de ton filtre est affreux (établir une connection DB à chaque fois, parcourir toute la table des hits)

    PS: es-tu certain de passer dans le filtre? tu devrais sans soucis récupérer l'attribut, a moins que ton filtre ne l'aie pas défini

  11. #11
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    je voulais dire le code de ton filtre est affreux (établir une connection DB à chaque fois, parcourir toute la table des hits)
    oui je suis d'accord avec toi, mais si je viens ici, c'est pour me faire conseiller...
    PS: es-tu certain de passer dans le filtre? tu devrais sans soucis récupérer l'attribut, a moins que ton filtre ne l'aie pas défini
    Oui certain que je passe dans le filtre, vu qu'il execute la query pour chaque url... maintenant je ne sais pas comment faire pour savoir s'il est bien défini au niveau de mon filtre...

    Bref, un peu d'aide serait la bienvenue

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    -> mettre un println juste avant de définir l'attribut, pour être sur qu'il passe sur cette ligne de code
    -> s'assurer que la clé entre le filtre et la jsp soit la même
    -> s'assurer qu'on accède bien à la jsp par un '.do' puisque tno filtre est mappé là dessus


    Pour les conseil par rapport au perfs:

    1) faire une requete sql qui te retourne direct le bon résultat, pas une requte qui te retourne toute la table et dans laquelle tu irait lire chaque enregistrment
    2) utiliser un connection pool pour éviter d'établir une connection à chaque fois (ce qui prend du temps)

  13. #13
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    -> mettre un println juste avant de définir l'attribut, pour être sur qu'il passe sur cette ligne de code
    => déjà fait, j'ai bien le resultat
    -> s'assurer que la clé entre le filtre et la jsp soit la même
    -> je reprends bien la bonne
    -> s'assurer qu'on accède bien à la jsp par un '.do' puisque tno filtre est mappé là dessus
    la aussi c'est Ok
    Pour les conseil par rapport au perfs:
    1) faire une requete sql qui te retourne direct le bon résultat, pas une requte qui te retourne toute la table et dans laquelle tu irait lire chaque enregistrment
    la requete ne retournera qu'un seul enregistrement
    2) utiliser un connection pool pour éviter d'établir une connection à chaque fois (ce qui prend du temps)
    ça je le ferais après avoir résolu mon problème ... de départ :
    récupérer ma variable dans ma JSP...

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    t'as quoi a la place de ta variable, un null?

  15. #15
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    t'as quoi a la place de ta variable, un null?
    oui j'ai bien un null au lieu du résultat de mon query...

Discussions similaires

  1. Récupérer variable dans input type text
    Par Enthau dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/06/2007, 08h53
  2. Récupérer Variable dans une autre page et les sauvegarder
    Par MarianD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2007, 21h07
  3. [débutant] récupérer variables dans fichier
    Par guigui32 dans le forum Langage
    Réponses: 2
    Dernier message: 30/11/2006, 11h03
  4. include + nom de variable dans JSP
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 19/09/2006, 11h27
  5. [ActionScript] Récupérer variable dans URL
    Par JohnBlatt dans le forum Flash
    Réponses: 2
    Dernier message: 20/07/2005, 10h21

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