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