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 :

Afficher les données de la base en utilisant les JSP, Servelets, (Methode MVC)


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Afficher les données de la base en utilisant les JSP, Servelets, (Methode MVC)
    Bonjour,
    je suis très débutant en JEE, je voulais vous demander comment afficher les données de la base de données (genre une liste de clients) en utilisant les servelets, JSP, DAO, et Beans ?

    en gros j'ai :
    la classe Entreprise.java
    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
     
    package com.test.beans;
     
    public class Entreprise {
     
    	private String codeE;
    	private String nomE;
    	private String emailE;
    	private String adresseE;
    	private String loginE;
    	private String mdpE;
    	private TypeEntreprise codeTE;
     
     
    	public String getCodeE() {
    		return codeE;
    	}
    	public void setCodeE(String codeE) {
    		this.codeE = codeE;
    	}
    	public String getNomE() {
    		return nomE;
    	}
    	public void setNomE(String nomE) {
    		this.nomE = nomE;
    	}
    	public String getEmailE() {
    		return emailE;
    	}
    	public void setEmailE(String emailE) {
    		this.emailE = emailE;
    	}
    	public String getAdresseE() {
    		return adresseE;
    	}
    	public void setAdresseE(String adresseE) {
    		this.adresseE = adresseE;
    	}
    	public String getLoginE() {
    		return loginE;
    	}
    	public void setLoginE(String loginE) {
    		this.loginE = loginE;
    	}
    	public String getMdpE() {
    		return mdpE;
    	}
    	public void setMdpE(String mdpE) {
    		this.mdpE = mdpE;
    	}
    	public TypeEntreprise getCodeTE() {
    		return codeTE;
    	}
    	public void setCodeTE(TypeEntreprise codeTE) {
    		this.codeTE = codeTE;
    	}
     
     
    }
    classe EntrepriseDaoImpl

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    package com.test.dao;
     
    import static com.test.dao.DAOUtilitaire.fermeturesSilencieuses;
    import static com.test.dao.DAOUtilitaire.initialisationRequetePreparee;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.List;
     
    import com.test.beans.Entreprise;
    import com.test.beans.TypeEntreprise;
     
    public class EntrepriseDaoImpl implements EntrepriseDao{
     
        private static final String SQL_SELECT_PAR_EMAIL = "SELECT codee, codeete, nome, emaile, adressee, logine, mdpe FROM Entreprise WHERE email = ?";
        private static final String SQL_INSERT           = "INSERT INTO Entreprise (codee, codete, nome, emaile, adressee, logine, mdpe) VALUES (?, ?, ?, NOW())";
     
        private DAOFactory daoFactory;
     
        EntrepriseDaoImpl( DAOFactory daoFactory ) {
            this.daoFactory = daoFactory;
        }
     
        /* Implémentation de la méthode définie dans l'interface EntrepriseDao */
        @Override
        public Entreprise trouver( String email ) throws DAOException {
            return trouver( SQL_SELECT_PAR_EMAIL, email );
        }
     
        /* Implémentation de la méthode définie dans l'interface EntrepriseDao */
        @Override
        public void creer( Entreprise Entreprise ) throws DAOException {
            Connection connexion = null;
            PreparedStatement preparedStatement = null;
            ResultSet valeursAutoGenerees = null;
     
            try {
                connexion = daoFactory.getConnection();
                preparedStatement = initialisationRequetePreparee( connexion, SQL_INSERT, true, Entreprise.getCodeE(), Entreprise.getCodeTE(), Entreprise.getNomE(), Entreprise.getEmailE(), Entreprise.getAdresseE(), Entreprise.getLoginE(), Entreprise.getMdpE() );
                int statut = preparedStatement.executeUpdate();
                if ( statut == 0 ) {
                    throw new DAOException( "Échec de la création de l'Entreprise, aucune ligne ajoutée dans la table." );
                }
                valeursAutoGenerees = preparedStatement.getGeneratedKeys();
                if ( valeursAutoGenerees.next() ) {
                    Entreprise.setCodeE( valeursAutoGenerees.getString( 1 ) );
                } else {
                    throw new DAOException( "Échec de la création de l'Entreprise en base, aucun ID auto-généré retourné." );
                }
            } catch ( SQLException e ) {
                throw new DAOException( e );
            } finally {
                fermeturesSilencieuses( valeursAutoGenerees, preparedStatement, connexion );
            }
        }
     
        /*
         * Méthode générique utilisée pour retourner un Entreprise depuis la base
         * de données, correspondant à la requête SQL donnée prenant en paramètres
         * les objets passés en argument.
         */
        private Entreprise trouver( String sql, Object... objets ) throws DAOException {
            Connection connexion = null;
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            Entreprise Entreprise = null;
     
            try {
                /* Récupération d'une connexion depuis la Factory */
                connexion = daoFactory.getConnection();
                /*
                 * Préparation de la requête avec les objets passés en arguments
                 * (ici, uniquement une adresse email) et exécution.
                 */
                preparedStatement = initialisationRequetePreparee( connexion, sql, false, objets );
                resultSet = preparedStatement.executeQuery();
                /* Parcours de la ligne de données retournée dans le ResultSet */
                if ( resultSet.next() ) {
                    Entreprise = map( resultSet );
                }
            } catch ( SQLException e ) {
                throw new DAOException( e );
            } finally {
                fermeturesSilencieuses( resultSet, preparedStatement, connexion );
            }
     
            return Entreprise;
        }
     
        /*
         * Simple méthode utilitaire permettant de faire la correspondance (le
         * mapping) entre une ligne issue de la table des Entreprises (un
         * ResultSet) et un bean Entreprise.
         */
        private static Entreprise map( ResultSet resultSet ) throws SQLException {
            Entreprise Entreprise = new Entreprise();
            TypeEntreprise typeEntreprise = new TypeEntreprise();
     
            Entreprise.setCodeE( resultSet.getString( "code" ) );
            Entreprise.setNomE( resultSet.getString( "nom" ) );
            Entreprise.setEmailE( resultSet.getString( "email" ) );
            Entreprise.setAdresseE( resultSet.getString( "adresse" ) );
            Entreprise.setLoginE( resultSet.getString( "login" ) );
            Entreprise.setMdpE( resultSet.getString( "Mot de passe" ) );
            Entreprise.setCodeTE(typeEntreprise);
            return Entreprise;
        }
     
    	@Override
    	public List<Entreprise> lister() {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    }
    classe :EntrepriseDao :
    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
    package com.test.dao;
     
    import java.util.List;
     
    import com.test.beans.Entreprise;
     
    public interface EntrepriseDao {
     
    	void creer( Entreprise Entreprise ) throws DAOException;
     
        Entreprise trouver( String email ) throws DAOException;
     
        List<Entreprise>lister();
     
    }
    Puis mon servelets :
    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
    package com.test.servlets;
     
    import java.io.IOException;
    import java.util.List;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import com.test.beans.Entreprise;
    import com.test.dao.DAOFactory;
    import com.test.dao.EntrepriseDao;
     
    public class tousLesClients extends HttpServlet {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = -6985213030206229934L;
    	//public static final long  String ATT_MESSAGES ="messages";
    	private EntrepriseDao uneEntrepriseDao;
     
     
    	public void init() throws ServletException{
    		DAOFactory daoFactory = DAOFactory.getInstance();
     
    				this.uneEntrepriseDao = daoFactory.getEntrepriseDao();
     
    	}
     
    	public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
            List<Entreprise> ListeEntreprises = uneEntrepriseDao.lister();
            request.setAttribute("ListeEntreprise", ListeEntreprises);
     
            this.getServletContext().getRequestDispatcher("/WEB-INF/tousLesClients.jsp").forward( request, response );
        }
    	public void doPost(HttpServletRequest req, HttpServletResponse rep ) throws ServletException, IOException{
     
    		req.getParameter("codeE");
    		req.getParameter("nomE");
    		req.getParameter("emailE");
    		req.getParameter("adresseE");
    		req.getParameter("codeTE");
    	}
    }
    Je voulait un JSP pour pouvoir afficher ces informations, et s'il y a des erreurs dans ce precedent code vous pouvez m'explique svp !

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Citation Envoyé par nunujp Voir le message
    Je voulait un JSP pour pouvoir afficher ces informations
    Vu ce que tu fais dans ta Servlet,tu dois exploiter le résultat de ta requête SQL_SELECT_PAR_EMAIL dans la méthode lister() de la classe EntrepriseDaoImpl. Pour faire simple,pour chaque nuplet tu l'enregistres dans une collection que tu récupères depuis ta Servlet dans un attribut(avec une des portée à choisir prudemment).
    C'est cet attribut là que tu dois utiliser pour des fins de parcours dans la JSP afin d'afficher les informations contenu dans la collection(résultat de la requête).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Kasko Voir le message
    Vu ce que tu fais dans ta Servlet,tu dois exploiter le résultat de ta requête SQL_SELECT_PAR_EMAIL dans la méthode lister() de la classe EntrepriseDaoImpl. Pour faire simple,pour chaque nuplet tu l'enregistres dans une collection que tu récupères depuis ta Servlet dans un attribut(avec une des portée à choisir prudemment).
    C'est cet attribut là que tu dois utiliser pour des fins de parcours dans la JSP afin d'afficher les informations contenu dans la collection(résultat de la requête).

    @Kasko, Merci pour ta réponse, mais je ne vois pas trop comment je peux exploiter le résultat de la requête SQL_SELECT_PAR_EMAIL dans la méthode lister (). et aussi je ne sais pas comment récupérer les champs envoyés par la requête dans la JSP ( je ne connais pas la syntax)

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Salut,
    pour ce qui est de l'exploitation de requête regarde du coté de Statement ou PreparedStatement.
    Quant à l'affichage dans la JSP le plus simple est d'utiliser la JSTL.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Voila comment j'ai fait après avoir suivi un petit tutoriel :

    j'ai implimenté la methode lister() qui est definie dans EntrepriseDao
    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
    @Override
    	public List<Entreprise> lister() {
            List<Entreprise> entreprises = new ArrayList<Entreprise>();
            Connection connexion = null;
            Statement statement = null;
            ResultSet resultat = null;
     
            try {
                connexion = daoFactory.getConnection();
                statement = connexion.createStatement();
                resultat = statement.executeQuery("SELECT codeE, nomE, emailE, adresseE, loginE, mdpE FROM Entreprise WHERE codeE = ?");
     
                while (resultat.next()) {
                    String codeE = resultat.getString("codeE");
                    String nomE = resultat.getString("nomE");
                    String emailE = resultat.getString("emailE");
                    String adresseE = resultat.getString("adresseE");
                    String loginE = resultat.getString("loginE");
                    String mdpE = resultat.getString("mdpE");
                    String String = resultat.getString("String");
     
                    Entreprise ent = new Entreprise();
     
                    ent.setCodeE(codeE);
                    ent.setNomE(nomE);
                    ent.setEmailE(emailE);
                    ent.setAdresseE(adresseE);
                    ent.setLoginE(loginE);
                    ent.setMdpE(mdpE);
                    ent.setCodeTE(String);
     
     
                    entreprises.add(ent);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return entreprises;
        }
    ensuite , voici ma servelet :

    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
    package com.test.servlets;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import com.test.dao.DAOFactory;
    import com.test.dao.EntrepriseDao;
     
    public class tousLesClients extends HttpServlet {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = -6985213030206229934L;
    	public static final java.lang.String  String  ="messages";
    	private EntrepriseDao EntrepriseDao;
     
     
    	public void init() throws ServletException{
    		DAOFactory daoFactory = DAOFactory.getInstance();
    				this.EntrepriseDao = daoFactory.getEntrepriseDao();
     
    	}
     
    	public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
            //List<Entreprise> ListeEntreprises = uneEntrepriseDao.lister();
            request.setAttribute("Clients", EntrepriseDao.lister());
     
            this.getServletContext().getRequestDispatcher("/WEB-INF/tousLesClients.jsp").forward( request, response );
        }
    	public void doPost(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
    		request.getParameter("codeE");
    		request.getParameter("nomE");
    		request.getParameter("emailE");
    		request.getParameter("adresseE");
    		request.getParameter("codeTE");
     
     
            request.setAttribute("Clients", EntrepriseDao.lister());
     
            this.getServletContext().getRequestDispatcher("/WEB-INF/tousLesClients.jsp").forward(request, response);
    	}
    }
    et la JSP correspondant :

    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
    <%@ page pageEncoding="UTF-8" %>
    <!DOCTYPE html>
     
    <html>
     
        <head>
     
            <meta charset="utf-8" />
     
            <title>Tous les clients</title>
     
        </head>
     
     
        <body>
     
            <p>Ceci est une page générée depuis une JSP.</p>
     
        <ul>
            <c:forEach var="entreprise" items="${ entreprises }">
                <li><c:out value="${ entreprise.codeE }" /> 
                <c:out value="${ entreprise.nomE }" /> 
                <c:out value="${ entreprise.emailE }" />
                 <c:out value="${ entreprise.adresseE }" />
                 <c:out value="${ entreprise.loginE }" /></li>
            </c:forEach>
        </ul>
     
     
        </body>
     
    </html>
    mais l'affichage ne marche tjrs pas , j'ai cette page :
    Nom : Capture.PNG
Affichages : 1495
Taille : 7,4 Ko


    c'est ou vous pensez que j'ai mal fait ?

    merci

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    1- Le problème est ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("Clients", EntrepriseDao.lister());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <c:forEach var="entreprise" items="${ entreprises }">
    2- Il faut respecter la convention:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public static final java.lang.String  String  ="messages";
    	private EntrepriseDao EntrepriseDao;
    Bien que ce code est juste, par convention, le nom d'un attribut et méthode doivent commencer par un minuscule sauf pour les variables static final qui doivent être tout en majuscule et les mots séparés par un underscore. Un nom de variable doit être significatif, pour moi un nom de variable String me fait penser à autre chose. EntrepriseDao.lister(), ce nom de variable commençant par un majuscule m'a fait penser que lister() est une méthode static
    Bref, j'ai pas lu tes codes en entier puisque qu'avec ce genre de pratique, difficile les suivre.

    A+.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Données cliquable (jsp, servelets)
    Bonjour,
    je souhaiterais que mes données dont j'ai affiché depuis la base de données postgres, soient cliquable, par exemple une liste clients , et on pourra cliquer sur un des clients et afficher le detail lui correspondant. comment faire en utilisant (JSP, servelets et les beans ) ?

    ceci est ma page qui affiche les clients (les entreprises)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <body>
     
    	<h1>Tous les clients</h1>
     
     
    		<p><c:forEach items="${ListeEntreprises}" var="Entreprise">
    		<c:out value="${Entreprise.getCodeE()} - ${Entreprise.getNomE()} " /> <br/>
    		</c:forEach></p>
     
     
    </body>
    merci.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/12/2015, 14h50
  2. Réponses: 2
    Dernier message: 24/05/2011, 03h18
  3. Réponses: 0
    Dernier message: 21/06/2010, 15h28
  4. [OpenOffice][Base de données] Récupérer les données d'un fichier .txt et les insérer dans une base de données
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 05/08/2009, 10h52
  5. Comment utiliser les données d'une base de données
    Par tresorkoul dans le forum JDeveloper
    Réponses: 8
    Dernier message: 10/07/2009, 14h47

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