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 :

Retrouver les données d'une page jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut Retrouver les données d'une page jsp
    Bonjour tout le monde,

    Je suis débutante en J2ee et j'ai récemment commencé à développer mon appli.

    Je voulais savoir s'il est possible de stocker une page jsp en session.

    Je m'explique: j'ai une page qui récupère les données d'un formulaire et je souhaiterais que l'utilisateur puisse accèder à cette page à tout moment lors d'une session en cliquant sur un bouton "Visualiser".


    Est-ce possible? Sinon, que me conseillez-vous de faire?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    On peut stocker des informations sur la session : on apppelle ça les attributs de session. On peut récupérer les valeurs en Java, ou avec JSTL. Par exemple
    <%= session.getAttribute( "machin" ) %> affichera le contenu de l'attribut de session de nom "machin". Maintenant, pour pouvoir récupérer des informations dans la session, il faut les avoir stockés avant. Par exemple, si tu as des données dans un formulaire que tu soumets à une servlet (ou une JSP qui fait office de servlet), tu peux récupérer ces données (des paramètres de la requête), et les stocker dans la session, par session.setAttribute("machin", request.getParameter("parametreMachin");.

    Voici un exemple simple d'une jsp avec un formulaire : on saisit un texte dans le champ et on clique "enregistrer". Le formulaire se réaffiche, avec en dessous la liste des chaînes qu'on a entrées précedemment.

    Code jsp : 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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.List"%>
    <%@ page import="java.util.ArrayList"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Démo</title>
    </head>
    <body>
     
    <% 
     
    String dataParameter = request.getParameter("data");
    if ( dataParameter!=null && !dataParameter.isEmpty() ) { // si on un paramètre dans la requête
            
            List<String> liste = (List<String>)session.getAttribute("listeData");
            if( liste==null ) { // il n'y a pas encore de liste sur la session
                    liste = new ArrayList<>(); // on en créé une
                    session.setAttribute("listeData", liste); // on la stocke sur la session
            }
            liste.add(dataParameter); // on mémorise la valeur du paramètre dans la liste
    }
     
    %>
     
     
    <form method="post" action="demo.jsp">
    <input type="text" name="data">
    <input type="submit" value="Enregistrer">
    </form>
     
    <%List<String> liste = (List<String>)session.getAttribute("listeData"); // on récupère la liste sur la session
    if ( liste!=null ) { // s'il y en a une...
            %><ul><%
     
            for(String data : liste) { // on parcourt son contenu...
                    %><li><%= data %></li><% // et on affiche...
            }
     
            %></ul><%
    }
    %>
     
    </body>
    </html>
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Merci pour votre réponse.
    Ça je l'ai bien compris parce qu'en fait j'ai déjà une page qui me récupère les données d'un formulaire.
    Par contre si on ferme cette page qui affiche les données saisies, on n'as plus aucun historique sur ce que l'utilisateur a entré comme données
    Donc est ce qu'il est possible de stocker cette page quelque part et de la réafficher directement sans refaire des getParameter pour chaque champ?

    Merci.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Pour un formulaire de création de clients par exemple avec nom, prénom, date de naissance....au lieu d'avoir un tableau avec la liste des clients et toutes leurs données, je souhaiterais juste avoir le nom de chaque client et un lien qui afficherai le reste des données saisies dans le formulaire et qui concernent ce client.
    Donc pour l'instant j'ai mis pour chaque "client" un lien vers la page qui réaffiche les données du formulaire mais le problème est que quand je crée un nouveau client, cette page affiche les données de ce client, même pour les anciens clients créés alors que les données de ceux-ci ne devraient pas changer.
    J'espère avoir été assez claire, sinon n'hésitez pas à me le faire savoir.
    Merci par avance.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    On pourrait stocker la "page", mais il faudrait pour ça la reconstituer de manière à ce qu'elle ressemble à la page avec le formulaire : en plus de prendre de la place pour rien, il faudrait dupliquer inutilement en partie le code de la jsp qui produit le formulaire. Et ça n'empecherait pas de devoir récupérer les valeurs saisies par getParameter(). C'est bien plus simple de conserver que les parties variables (les paramètre donc) et de reconstruire la page (ou un autre si le but est d'afficher uniquement sans pouvoir éditer (ce que fait mon exemple, puisqu'on ne peut pas éditer ce qu'on a déjà saisi précédemment)).

    Si on ferme la page, on conserve bien sur la session (tant qu'elle existe bien sûr) les attributs qui y sont stockés. Si le but est de les conserver au-delà de l'expiration de la session, il te faudra obligatoirement les stocker, dans une base de données par exemple (ou un fichier xml, ou autre, peu importe).

    Après, il y a peut être une solution pour stocker la page telle quelle dans la base locale html5 (ou, pire, dans un cookie), mais il faut voir ça plutôt dans le forum javascript. Mais je n'en vois pas trop l'intérêt.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Hdnndh Voir le message
    Pour un formulaire de création de clients par exemple avec nom, prénom, date de naissance....au lieu d'avoir un tableau avec la liste des clients et toutes leurs données, je souhaiterais juste avoir le nom de chaque client et un lien qui afficherai le reste des données saisies dans le formulaire et qui concernent ce client.
    Donc pour l'instant j'ai mis pour chaque "client" un lien vers la page qui réaffiche les données du formulaire mais le problème est que quand je crée un nouveau client, cette page affiche les données de ce client, même pour les anciens clients créés alors que les données de ceux-ci ne devraient pas changer.
    J'espère avoir été assez claire, sinon n'hésitez pas à me le faire savoir.
    Merci par avance.
    Euh, j'ai l'impression que ça n'a rien à avoir avec la question d'origine (stocker des données dans la session), mais simplement à voir avec le problème de stocker des données saisies. Rien à voir vraiment donc avec les JSP, mais juste avec la gestion de base de données (ou alternative du type hibernate par exemple).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    En fait la question était de savoir si pour chaque client, il est possible de stocker sa propre page d'affichage de données saisies et d'accéder à cette page via un lien. Le stockage de cette page en session sous un certain identifiant permettrait donc d'éviter d'avoir à chaque fois les données du dernier client créé.
    En l'état actuel, ce lien n'affiche que les données du dernier client, et ce pour tous les clients existants.
    La solution est peut être liée aux bases de données, je ne sais pas trop

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous,

    Souhaitez-vous que j'apporte des précisions ou pensez-vous que ce n'est pas du tout possible?
    Merci d'avance pour vos réponses.

  9. #9
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    oui comme l'a dit joel.drigo il faut un moment ou un autre persister les données pour chaque client, ce que ferait très bien une base de données.

Discussions similaires

  1. Contrôle sur les champs d' une pages JSP
    Par amine1980 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 06/03/2007, 08h38
  2. Réponses: 3
    Dernier message: 26/02/2007, 10h14
  3. Actualiser les données d'une page à partir d'une autre
    Par kapikapi dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/06/2006, 18h55
  4. [impression] imprimer les résultats d'une page jsp
    Par Lady_jade dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 24/03/2006, 11h59
  5. Réponses: 3
    Dernier message: 28/12/2005, 15h29

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