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 des données de BDD sur la page JSP/servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Points : 57
    Points
    57
    Par défaut récupérer des données de BDD sur la page JSP/servlet
    salut tout le monde
    J'ai une base de données MySqlet j'aimerai récupérer les données stocké dans BD

    ma servlet est la suivante :
    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
    package com.example;
     
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import mql.com.metier.CatalogueMetierProduitImpl;
    import mql.com.metier.ICatalogueProduitMetier;
    import mql.com.metier.Produit;
    import mql.com.model.ProduitModel;
     
    public class ControleurServletProduit extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
    	private ICatalogueProduitMetier metier;
     
    	@Override
    	public void init() throws ServletException {
    		metier =new CatalogueMetierProduitImpl("ecommerce");		
    	}
     
     
     
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		request.getRequestDispatcher("produit.jsp").forward(request, response);
    		System.out.println("GET");
    	}
     
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		ProduitModel model=new ProduitModel();
     
    		model.getProduit().setDesignation(request.getParameter("designationtxt"));
    		model.getProduit().setPrix(Double.parseDouble( request.getParameter("prixtxt")));
    		model.getProduit().setQuantite(Integer.parseInt(request.getParameter("qtetxt")));
    		metier.addProduit(model.getProduit());
     
     
     
    		request.setAttribute("modelProduit", metier.allProduit());
    		request.getRequestDispatcher("produit.jsp").forward(request, response);
     
    	}
     
    }
    J'ai eu une classe CatalogueMetierProduitImpl qui contient les différentes opérations d'insertion, de récupérer un produit ...

    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    package mql.com.metier;
     
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
     
    import com.mysql.jdbc.PreparedStatement;
     
    import mql.com.util.BDInteraction;
    import mql.com.util.SingletonConnexion;
     
    public class CatalogueMetierProduitImpl extends BDInteraction implements
    		ICatalogueProduitMetier {
     
    	public CatalogueMetierProduitImpl(String BD) {
    		super(BD);
    	}
     
    	@Override
    	public void addProduit(Produit p) {
    		connect();
    		String sql = "INSERT INTO `produit`(`Designation`, `Prix`, `Quantite`) VALUES ('"
    				+ p.getDesignation()
    				+ "','"
    				+ p.getPrix()
    				+ "','"
    				+ p.getQuantite() + "')";
    		MJR(sql);
    		disconnect();
    	}
     
    	@Override
    	public void upDateProduit(Produit p) {
    		connect();
    		String sql = "UPDATE `produit` SET `Designation`='"
    				+ p.getDesignation() + "',`Prix`='" + p.getPrix()
    				+ "',`Quantite`='" + p.getQuantite() + "' WHERE `idProduit`='"
    				+ p.getIdProduit() + "'";
    		System.out.println("le produit dans la commande modifier : "
    				+ p.getPrix());
    		MJR(sql);
    		disconnect();
     
    		/*
    		 * Connection conn=SingletonConnexion.getConnexion(); try {
    		 * PreparedStatement ps=(PreparedStatement) conn.prepareStatement(
    		 * "UPDATE `produit` SET `Designation`=?,`Prix`=?,`Quantite`=? WHERE  `idProduit`=?"
    		 * ); ps.setString(1, p.getDesignation()); ps.setDouble(2, p.getPrix());
    		 * ps.setInt(3, p.getQuantite()); ps.setInt(4, p.getIdProduit());
    		 * ps.executeQuery(); ps.close(); } catch (Exception e) {
    		 * 
    		 * }
    		 */
    	}
     
    	@Override
    	public void delete(int id) {
    		connect();
    		String sql = "DELETE FROM `produit` WHERE  `idProduit`='" + id + "'";
    		MJR(sql);
    		disconnect();
    	}
     
    	@Override
    	public List<Produit> allProduit() {
    		ArrayList<Produit> produits = new ArrayList<Produit>();
    		connect();
    		String sql = "SELECT * FROM `produit`";
    		ResultSet rs = Select(sql);
    		try {
    			while (rs.next()) {
    				Produit p = new Produit();
    				p.setDesignation(rs.getString(2));
    				p.setPrix(rs.getDouble(3));
    				p.setQuantite(rs.getInt(4));
    				produits.add(p);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		disconnect();
    		return produits;
    	}
     
    	@Override
    	public List<Produit> getProduitByKey(String designation) {
    		ArrayList<Produit> produits = new ArrayList<Produit>();
     
    		connect();
    		String sql = "SELECT * FROM `produit` where `Designation` like '"
    				+ designation + "'";
    		ResultSet rs = Select(sql);
    		try {
    			while (rs.next()) {
    				Produit p = new Produit();
    				p.setDesignation(rs.getString(2));
    				p.setPrix(rs.getDouble(3));
    				p.setQuantite(rs.getInt(4));
    				produits.add(p);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		disconnect();
    		if (produits == null)
    			throw new RuntimeException(designation + " N'existe pas");
    		return produits;
    	}
     
    	@Override
    	public Produit getProduit(int id) {
    		Produit p = null;
    		connect();
    		String sql = "SELECT * FROM `produit` where `idProduit`='" + id + "'";
    		ResultSet rs = Select(sql);
    		try {
    			while (rs.next()) {
    				p = new Produit();
    				p.setDesignation(rs.getString(2));
    				p.setPrix(rs.getDouble(3));
    				p.setQuantite(rs.getInt(4));
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		disconnect();
    		if (p == null)
    			throw new RuntimeException(id
    					+ " => l'id Produit introuvable get By Id");
    		return p;
     
    	}
     
    }
    et une classe BDInteraction de connexion à la base des données ...

    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
    package mql.com.util;
     
    import java.sql.Statement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
     
    public class BDInteraction {
     
    	Connection conn;
    	Statement st;
    	ResultSet rs;
    	String url;
     
    	public BDInteraction(String BD) {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			url = "jdbc:mysql://127.0.0.1/" + BD;
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	public void connect() {
    		try {
    			conn = DriverManager.getConnection(url, "root", "");
    			st = (Statement) conn.createStatement();
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	public void disconnect() {
    		try {
    			conn.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	public ResultSet Select(String sql) {
    		try {
    			rs = st.executeQuery(sql);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return rs;
    	}
     
    	public int MJR(String sql) {
    		int nb = 0;
    		try {
    			nb = st.executeUpdate(sql);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return nb;
    	}
     
    	public boolean next() {
    		try {
    			return rs.next();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return false;
    	}
     
    }

    j'ai testé toute les opérations à réaliser et c'est bon

    Il y a dans la servlet le variable model qui t elle une classe qui contient mon model

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class ProduitModel {
     
    	private String designation;
    	private int quantete;
    	private double prix;
    	private List<Produit> tousProduits = new ArrayList<Produit>();
    	private Produit produit = new Produit();
     
    //avec les getters et les setters
    Dans la phase d'ajout la connexion entre la servlet et la page jsp ça marche et tout va bien mais l'opérations d'affichage des données pas ça n'a pas marcher

    alors dans DoPost de servlet il y a une partie d'ajout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    model.getProduit().setDesignation(request.getParameter("designationtxt"));
    		model.getProduit().setPrix(Double.parseDouble( request.getParameter("prixtxt")));
    		model.getProduit().setQuantite(Integer.parseInt(request.getParameter("qtetxt")));
    		metier.addProduit(model.getProduit());
    et il y a une partie pour l'affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    model.setTousProduits(metier.allProduit());
     
    		request.setAttribute("modelProduit", model);
    		request.getRequestDispatcher("produit.jsp").forward(request, response);
    et la partie html est la suivante

    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
    <b>Afficher les produits</b>
     
    						<table>
    							<tr>
    								<td>idProduit</td>
    								<td>designation</td>
    								<td>prix</td>
    								<td>quantite</td>
    							</tr>
    							<c:forEach items="${modelProduit.tousProduits }" var="p">
    								<tr>
    									<td>${p.idProduit }</td>
    									<td>${p.designation }</td>
    									<td>${p.prix }</td>
    									<td>${p.quantite }</td>
    								</tr>
    							</c:forEach>
    						</table>
    je n'arrive pas à résoudre le problème Y-a-t-il une personne qui peut m'aider et merci d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 145
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td>${p.quantite }</td>
    alors que ta propriété est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private int quantete;
    est certainement la cause de ton erreur d'affichage

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Points : 57
    Points
    57
    Par défaut
    J'ai déjà écrit ce code la dans la jsp et dans le servlet et dans la classe. je suis bloqué pour afficher les données dans le web.xml: la structure pour affciher une page de type http://localhost:8080/categorie.jsp

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 145
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    je suis bloqué pour afficher les données dans le web.xml
    Reformule bien ta question. qu'est ce que ça veut dire afficher les données dans le web.xml?

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Points : 57
    Points
    57
    Par défaut
    batanga09 Excusez moi pour la phrase que j'ai déjà écrit (problème de concentration).

    Alors je voudrais dire que dans le fichier web.xml qu'on veut définir le nom de la page (test.html, test.jsp ou test.php...) qu'on veut l'afficher dans notre navigateur et bien sûr dans cette page les données doivent être afficher. je pense que vous êtes bien comprit ce que je voudrais faire et excusez moi une autre fois et merci

Discussions similaires

  1. Réponses: 19
    Dernier message: 28/09/2016, 09h09
  2. Enregistrer et récupérer des données (sans BDD)
    Par Prodiguy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/05/2013, 15h31
  3. Mise à jour des données entre BDD et ma page Admin
    Par iluvatar75 dans le forum Débuter
    Réponses: 2
    Dernier message: 20/06/2012, 13h21
  4. Réponses: 3
    Dernier message: 25/09/2008, 19h17
  5. [Spring MVC] Récupérer des valeurs de formulaires sur n pages
    Par ran_hery dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/04/2006, 07h23

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