Académique Documents
Professionnel Documents
Culture Documents
TP MVC Gestion Factures PDF
TP MVC Gestion Factures PDF
Youssfi
Dans un premier temps, nous allons nous intresser uniquement la consultation des
clients. Le travail que nous allons raliser consiste afficher les clients en saisissant un mot
cl qui reprsente une partie du nom du client
Premire partie :
1
JSP, SERVLET, JDBC, MVC M.Youssfi
1- Base de donnes :
2- Modle
a- Client.java
package mod.fact;
public class Client {
private int idClient;
private String nom;
private String email;
private String tel;
private String ville;
2
JSP, SERVLET, JDBC, MVC M.Youssfi
b- Utilitaire.java
package mod.fact;
import java.sql.*;
public class Utilitaire {
private static Connection conn;
static{
try {
// Pour JDBC ODBC
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:dsnFact","","");
// pour Mysql Driver :
//Class.forName("com.mysql.jdbc.Driver");
//conn=DriverManager.getConnection
// ("jdbc:mysql://localhost:3306/NOM_BASE", "root", "" );
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){ return conn; }
}
c- Operateur.java
package mod.fact;
import java.sql.*;
import java.util.*;
public class Operateur {
public Vector chercheClientsParMotCles(String motCle){
Vector lesClients=new Vector();
Connection conn=Utilitaire.getConnection();
try {
PreparedStatement ps=conn.prepareStatement("select * from
CLIENTS where NOM LIKE ?");
ps.setString(1,"%"+motCle+"%");
ResultSet rs=ps.executeQuery();
while(rs.next()){
Client c=new Client();
c.setIdClient(rs.getInt("ID_CLIENT"));
c.setNom(rs.getString("NOM"));
c.setEmail(rs.getString("EMAIL"));
c.setTel(rs.getString("TEL"));
c.setVille(rs.getString("VILLE"));
lesClients.add(c);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return lesClients;
}
}
3
JSP, SERVLET, JDBC, MVC M.Youssfi
3- Couche prsentation
Clients1.jsp
<%
String mot=request.getParameter("motCle");
if(mot==null) mot="";
Operateur op=new Operateur();
Iterator itCli=op.chercheClientsParMotCles(mot).iterator();
%>
<html>
<head>
<title>Clients</title>
</head>
<body bgcolor="#FFFFFF">
<center>
<form method="post" action="Clients1.jsp">
Client:<input type="text" name="motCle" value="<%=mot%>">
<input name="chercher" type="submit" id="chercher"
value="Chercher">
</form>
4
JSP, SERVLET, JDBC, MVC M.Youssfi
Serveur
Client
Navigateur : Rep
Vue JDBC SGBD
JSP
Aperu de la 6 3
vue
Form Modle
5 Bean
Req1 Java beans
4 ou EJB
Contrleur
Une servlet 2
5
JSP, SERVLET, JDBC, MVC M.Youssfi
Reviennent notre problme notre page JSP sera divise en trois parties :
Daprs la requte,
Les donnes envoyes par le client se limitent la valeur de motCles
Les rsultats afficher est un vecteur de clients.
Le code java du form bean est le suivant :
package form.beans;
import java.util.Vector;
b- Contrleur : ControleurServlet.java
import java.io.IOException;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import form.beans.ClientForm;
import mod.fact.Operateur;
public class ControleurServlet extends HttpServlet {
public void dopost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
6
JSP, SERVLET, JDBC, MVC M.Youssfi
</web-app>
d- La vue : Clients2.jsp
7
JSP, SERVLET, JDBC, MVC M.Youssfi
<body bgcolor="#FFFFFF">
<center>
<form method="post" action="clients">
Client:<input type="text" name="motCle"
value="<%=cf.getMotCle()%>">
<input name="chercher" type="submit" id="chercher"
value="Chercher">
</form>
8
JSP, SERVLET, JDBC, MVC M.Youssfi
Deuxime Partie
Travail demand :