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 :

probleme d'affichage page par page


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut probleme d'affichage page par page
    mon probleme c'est : j'ai un ResultSet de ma base de données bien evidement contient plusieurs lignes , je veux inserer chaque ligne dans une page autrement dit par exemple un patient qui a fait des visites je dois afficher chaque visite et ces infos dans une page puis je clique sur lien suivant me donne la ligne suivante jusqu'à fin des données.Si quelqu'un peut m'aider et Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Stocke le résultat de ta recherche en session et il suffira d'aller chercher la page donnée.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    comment stocker en session et les données prennent les memes noms? donc la derniere ligne va ecraser les autre et on affiche donc la derniere alors que je veux afficher chaque ligne dans la meme page mais les donnees changent quand je clique suivant.Le prob comment faire pour que le lien suivant affiche chaque fois la ligne suivant dans la meme page.

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    List<String[]> pages = new ArrayList<String[]>();
    Connection connection = DriverManager.getConnection(...);
    Statement stmt = connection.createStatement();
    ResultSet rset = stmt.executeQuery("SELECT foo,bar FROM foobar");
    while (rset.next())
    {
      pages.add(new String[] { rset.getString(1), rset.getString(2) });
    }
    session.setAttribute("pages", pages);
    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
     
    <%
      List<String[]> pages = (List<String[]>) session.getAttribute("pages");
      int current = Integer.parseInt(request.getParameter("page"));
      String[] page = pages.get(current);
    %>
    ...
    <%if (current > 0) {%>
    <a href="display.do?page=<%=current-1%>">previous</a>
    <%}%>
    ...
    <%if (current < pages.size() - 1) {%>
    <a href="display.do?page=<%=current+1%>">next</a>
    <%}%>
    ...
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    j'ai fait comme vous m'avez ecris exactement voila l'erreur:

    e
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    xception 
     
    org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 22
     
    19: 
    20: <%
    21:   List<String[]> pages = (List<String[]>) session.getAttribute("pages");
    22:   int current = Integer.parseInt(request.getParameter("page"));
    23:    page = pages.get(current);
    24: %>
    25: ...
    voilà le code du 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
     List<String[]> pages = new ArrayList<String[]>();
            ConnexionBD c = new ConnexionBD();//classe pour faire connexion à la base
            c.driver();
            Connection con=c.OpenConnexion();
             try {
                         con.setAutoCommit(false);
                         PreparedStatement ptttttttt=con.prepareStatement("select * from visite where nomprenom=?");
                         ptttttttt.setString(1,"ma");
                         ResultSet sssssssss= ptttttttt.executeQuery();
                         con.commit();      
                         while(sssssssss.next() ){
     
                             pages.add(new String[] { sssssssss.getString(1), sssssssss.getString(2) });
     
     
     
     
     
     
     
     
                            }
                          HttpSession session = request.getSession();
                         session.setAttribute("pages", pages);
     
            } catch (SQLException ex) {
                Logger.getLogger(suivant.class.getName()).log(Level.SEVERE, null, ex);
            }
    voila la 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
    body>
            <form action="suivant" method="post">//suivant le nom de la servlet en haut
     
    <%
      List<String[]> pages = (List<String[]>) session.getAttribute("pages");
      int current = Integer.parseInt(request.getParameter("page"));
       page = pages.get(current);
    %>
    ...
    <%if (current > 0) {%>
    <a href="display.do?page=<%=current-1%>">previous</a>
    <%}%>
    ...
    <%if (current < pages.size() - 1) {%>
    <a href="display.do?page=<%=current+1%>">next</a>
    <%}%>
    </form>
        </body>

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Le code est un "template", il faut faire un peu attention à ce qui est marqué. Le code en exemple suppose que le paramètre "page" est toujours fourni !
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    j'ai pas bien compris , comment resoudre mon probleme pour toujours fournir ce parametre et de quoi s'agit il?

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Dans l'URL "http://localhost:8080/mapage.do?param1=value1&param2=value2"

    param1 et param2 sont deux paramètres dont les valeurs sont respectivement value1 et value2.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  9. #9
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    donc je fais quoi? j'ai pas compris la relation entre ce parametre et la page jsp qui va afficher les données.

  10. #10
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("param1")
    Permet de récupérer le paramètre "param1" mais celui-ci n'est pas forcément présent. Dans ce cas sa valeur est null.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  11. #11
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    oui je sais tous ça mais j'ai pas compris comment faire pour que la solution proposé par vous fonctionne

  12. #12
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    je reformule mon prob: je veux une page jsp et une servlet qui recupere tous les lignes d'une table et premiere execution de la page jsp j'ai le 1er ligne ensuite en bas j'ai un lien suivant lorsque je clique j'obtient la 2eme ligne et ainsi de suite jusqu'à la fin.
    NB: la page jsp contient un formulaire par exemple nom,prenom et adresse et à chaque appui au suivant j'obtient dans mes champs des nouveaux données
    je pense le prob est plus clair maintenant.

  13. #13
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    ...
    si le paramètre n'est pas défini, il faut considérer que le numéro de page est "0"
    ...
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  14. #14
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    je reformule mon prob: je veux une page jsp et une servlet qui recupere tous les lignes d'une table et premiere execution de la page jsp j'ai le 1er ligne ensuite en bas j'ai un lien suivant lorsque je clique j'obtient la 2eme ligne et ainsi de suite jusqu'à la fin.
    NB: la page jsp contient un formulaire par exemple nom,prenom et adresse et à chaque appui au suivant j'obtient dans mes champs des nouveaux données
    je pense le prob est plus clair maintenant.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    Par défaut
    Bonjour

    Pourquoi stocker en session ???
    Utiliser la clause LIMIT du sql et l'utiliser pour ne retourner qu'un résultat.
    Sur la jsp, 2 boutons, un "suivant" et un "précédent" qui donnent les nouvelles valeurs de LIMIT.

  16. #16
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    comment utiliser limit pour m'afficher la nouvelle valeur ou la precedante selon le bouton notez bien que je ne connais pas exactement la taille des données (c'est à dire je ne sais pas quand j'arrive à la derniere ligne)

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par trmalek Voir le message
    comment utiliser limit pour m'afficher la nouvelle valeur ou la precedante selon le bouton notez bien que je ne connais pas exactement la taille des données (c'est à dire je ne sais pas quand j'arrive à la derniere ligne)
    pour le limit, voir la doc SQL. ca reseemble à ça en général
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select **** from **** where **** LIMIT 100,50
    pour afficher les lignes 100 à 149

    pour connaitre la quantité de données, il suffit de faire un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from ****** where *******
    Il vaut mieux en programmation prendre le temps 2 ou 3 jours de bien apprendre tout ce qui est possible en SQL plutot que de vouloir tout faire coté logiciel. Ce sera nettement plus rapide à développer et nettement plus performant!

  18. #18
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par Mengué georges Voir le message
    Bonjour

    Pourquoi stocker en session ???
    Utiliser la clause LIMIT du sql et l'utiliser pour ne retourner qu'un résultat.
    Sur la jsp, 2 boutons, un "suivant" et un "précédent" qui donnent les nouvelles valeurs de LIMIT.

    La clause LIMIT n'est valable que pour deux choses : MySQL et un résultat ordonné sinon à chaque exécution de la requête c'est la merde. Il faut donc également un bon index, parfois (souvent) c'est vraiment pas optimal. Genre tu demandes de 50 à 100 et ça lit les 100 premiers résutlats mais ne te renvoient qu'à partir du 50e ...

    Le mieux serait encore de générer les URLs de la forme "/servlet?action=next&currentId=2" et d'avoir une requête du genre "SELECT * FROM ma_table WHERE id > :currentId LIMIT 1"
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  19. #19
    Membre régulier
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Mars 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 94
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    pour le limit, voir la doc SQL. ca reseemble à ça en général
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select **** from **** where **** LIMIT 100,50
    pour afficher les lignes 100 à 149

    pour connaitre la quantité de données, il suffit de faire un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from ****** where *******
    Il vaut mieux en programmation prendre le temps 2 ou 3 jours de bien apprendre tout ce qui est possible en SQL plutot que de vouloir tout faire coté logiciel. Ce sera nettement plus rapide à développer et nettement plus performant!
    merci pour votre reponse , mais je suis bon en sql mais mon question etait comment utiliser limit pour afficher chaque ligne dans une page actualisé avec les liens suivants et avants(sol proposé par Mengué georges). vous n'avez pas repondu à mon question merci de revoir mon prob et m'aider à le resoudre.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    comme mentionné plus haut, une fois que t'as ta requete SQL, c'est simplement une question passer en paramètre de ta requete HTTP l'endroit à afficher et de le recupéret via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("lenomquetuluiadonne")

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Affichage ipconfig /displaydns page par page? windows7
    Par destructive.flame dans le forum Windows
    Réponses: 1
    Dernier message: 28/02/2014, 08h00
  2. [MySQL] Affichage du résultat page par page (pagination)
    Par marcito dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 20/07/2007, 14h53
  3. [MySQL] Affichage page par page et requêtes du type $sql .=
    Par carelha dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/04/2006, 17h12
  4. [Tableaux] PB liens apres affichage page par page
    Par x2thez dans le forum Langage
    Réponses: 16
    Dernier message: 15/03/2006, 16h58
  5. [MySQL] afficher plusieurs enregistrements par page par page à la volée
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/03/2006, 12h22

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