Vous êtes sur la page 1sur 6

Université Ibn Zohr, Faculté des Sciences SMI6/II6

Département d’Informatique  Connexion


Agadir
Atelier 3
La communication Servlet-JSP-Bean

Objectif
Insérer un enregistrement dans la table [Villes] de la BD dans le cadre d'une
architecture MVC.

Contrôle : Servlet (VillesServlet.java),


Vues : JSP (VillesMenuViaServlet.jsp, VillesConnexionViaServlet.jsp,
VillesInsertViaServlet.jsp),
Modèle : JavaBean (Villes.java) + classe java de connexion
(ConnexionMysql.java).

Démarche

 Afficher le menu.
 Connexion à la BD.
 Insertion de l'enregistrement.
 Déconnexion.

Tout passe par la servlet contrôleur [VillesServlet.java] qui est le point


d'entrée de l'application.

Le menu est affiché [VillesMenuViaServlet.jsp].

Pour se connecter des valeurs (ut, mdp, bd, serveur) sont saisies dans un
formulaire jsp [VillesConnexionViaServlet.jsp] puis repassées au
contrôleur qui sollicite la méthode seConnecter() de la classe
[ConnexionMysql.java]. si la connexion est OK on revient vers le menu
autrement le formulaire de connexion est affiché à nouveau avec un
message d'erreur.

Pour insérer dans la table des valeurs (cp, nomVille, idPays) sont saisies
dans un formulaire jsp [VillesInsertViaServlet.jsp] et affectées aux
propriétés d'un bean (Villes.java) via la servlet contrôleur pour l'insertion.
Insertion Correction
Les vues :
- VillesMenuViaServlet.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"


pageEncoding="ISO-8859-1"%>
<!-- VillesMenuViaServlet.jsp -->
<a href="/WebAppJSP/VillesServlet?action=connexionSaisie">
Connexion</a><br/>
<a href="/WebAppJSP/VillesServlet?action=villesInsertSaisie"> Ajout
ville</a><br/>
<a href="/WebAppJSP/VillesServlet?action=deconnexion">
Déconnexion</a><br/>

- VillesConnexionViaServlet.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-


1"
pageEncoding="ISO-8859-1"%>
<!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>VillesConnexionViaServlet.jsp</title>
</head>
<body>
<!-- VillesConnexionViaServlet.jsp -->
<form action="/WebAppJSP/VillesServlet" method="post">
<label>Serveur</label>
 Déconnexion <input type="text" name="serveur" value="localhost" size="10" />
<label>BD</label>
<input type="text" name="bd" value="cours" size="10" />
<label>UT</label>
<input type="text" name="ut" value="root" size="10" />
<label>Mdp</label>
<input type="text" name="mdp" value="" size="10" />
<input type="hidden" name="action" value="connexion" />
<input type="submit" />
</form>
</body>
</html>
- VillesInsertViaServlet.jsp String lsMessage = "Connexion OK";
try
<%@ page language="java" contentType="text/html; charset=ISO-8859- {
1" // --- Connexion MySQL
pageEncoding="ISO-8859-1"%> Class.forName("com.mysql.jdbc.Driver");
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" String lsConnexion = "jdbc:mysql://" + serveur + "/" + bd;
"http://www.w3.org/TR/html4/loose.dtd">
<html> this.cn = DriverManager.getConnection(lsConnexion,ut,mdp);
<head> this.cn.setAutoCommit(false);
<meta http-equiv="Content-Type" content="text/html; charset=ISO- }
8859-1"> catch(ClassNotFoundException err) { lsMessage = "Erreur
<title>VillesInsertViaServlet.jsp</title> pilote : " + err.getMessage(); }
</head> catch(SQLException err) { lsMessage = "Erreur SQL : " +
<body> err.getMessage(); }
<!-- VillesInsertViaServlet.jsp --> return lsMessage;
<form action="/WebAppJSP/VillesServlet" method="post"> }
<label>Cp</label> // ---------------------------
<input type="text" name="cp" value="80000" size="5" /> public boolean seDeconnecter()
<label>Nom de la ville</label> {
<input type="text" name="nomVille" value="Agadir" /> try
<label>Id Pays</label> {
<input type="text" name="idPays" value="212" size="3" /> this.cn.close();
<input type="hidden" name="action" value="villesInsert" /> //this.cn = null;
<input type="submit" /> return true;
</form> }
</body> catch(SQLException err) { return false; }
</html> }
// ----------------------
public Connection getCn()
Modèle
{
- ConnexionMysql.java
return this.cn;
}
package modele; }
import java.sql.*;

// ------------------------ - Villes.java (bean)


public class ConnexionMysql
// ------------------------ package modele;
{ Connection cn;
// --- Méthodes import java.io.Serializable;
// ------------------------------------------------------------ import java.sql.*;
public String seConnecter(String serveur, String bd, String ut,
String mdp) public class Villes implements Serializable
{ // ----------------------------------------
{ {
private static final long serialVersionUID = 1L; return this.idPays;
private String cp; }
private String nomVille;
private String idPays; // -----------------------
public boolean getValide()
private boolean ibValide; {
return this.ibValide;
// --- Constructeur sans argument }
public Villes()
{ // --------------------------------------
} public String insererVille(Connection cn)
// --- Méthodes {
// ------------------------- // --- Déclarations
public void setCp(String cp) String lsMessage = "Insertion OK";
{ Statement lstInsert;
this.cp = cp; String lsInsert = "INSERT INTO villes("
this.ibValide = true; + ") VALUES ('" + cp + "','" + nomVille + "','"
} + idPays + "')";
// ------------------ try
public String getCp() {
{ // --- Insertion
return this.cp; lstInsert = cn.createStatement();
} lstInsert.executeUpdate(lsInsert);
// ------------------------------------- cn.commit();
public void setNomVille(String nomVille) }
{ catch(SQLException err) { lsMessage = err.getMessage(); }
this.nomVille = nomVille; return lsMessage;
this.ibValide = true; }
} }
// ------------------------
public String getNomVille() Contrôleur
{ - VillesServlet.java
return this.nomVille;
}
package controle;
// ---------------------------------
import javax.servlet.*;
public void setIdPays(String idPays)
import javax.servlet.http.*;
{
this.idPays = idPays;
import modele.ConnexionMysql;
this.ibValide = true;
import modele.Villes;
}
// ----------------------
import java.io.*;
public String getIdPays()
import java.sql.*;
{
// ------------------------------------------- this.url = "/VillesInsertViaServlet.jsp";
public class VillesServlet extends HttpServlet this.rediriger(requete, reponse);
// ------------------------------------------- }
{ if(requete.getParameter("action").equals("villesInsert"))
/** {
* this.villesInsert(requete, reponse);
*/ }
private static final long serialVersionUID = 1L; if(requete.getParameter("action").equals("deconnexion"))
private Connection cn; {
String url=""; this.seDeconnecter(requete, reponse);
private Villes beanVilles; }
private ConnexionMysql cnMySQL; }

// --------------- Initialisation // ---------------------


public void init() throws ServletException private void seConnecter(HttpServletRequest requete,
{ HttpServletResponse reponse) throws ServletException, IOException
cnMySQL = new ConnexionMysql(); {
beanVilles = new Villes(); String serveur = requete.getParameter("serveur");
} String bd = requete.getParameter("bd");
String ut = requete.getParameter("ut");
// -------------- Réception de valeurs String mdp = requete.getParameter("mdp");
public void doGet(HttpServletRequest requete, String lsMessage = cnMySQL.seConnecter(serveur, bd, ut, mdp);
HttpServletResponse reponse) throws ServletException, IOException
{ if(lsMessage.equals("Connexion OK"))
{
if(requete.getParameter("action").equals("init")) this.cn = cnMySQL.getCn();
{ this.url = "/VillesMenuViaServlet.jsp?message=" + lsMessage;
this.url = "/VillesMenuViaServlet.jsp"; }
this.rediriger(requete, reponse); else
} {
this.url = "/VillesConnexionViaServlet.jsp?message=" + lsMessage;
if(requete.getParameter("action").equals("connexionSaisie")) }
{ this.rediriger(requete, reponse);
this.url = "/VillesConnexionViaServlet.jsp"; }
this.rediriger(requete, reponse);
} // ---------------------
if(requete.getParameter("action").equals("connexion")) private void seDeconnecter(HttpServletRequest requete,
{ HttpServletResponse reponse) throws ServletException, IOException
this.seConnecter(requete, reponse); {
} String lsMessage = "";
if(cnMySQL.seDeconnecter()) lsMessage = "Déconnexion OK";
if(requete.getParameter("action").equals("villesInsertSaisie")) else lsMessage = "Déconnexion KO";
this.url = "/VillesMenuViaServlet.jsp?message=" + public void doPost(HttpServletRequest requete,
lsMessage; HttpServletResponse reponse) throws ServletException, IOException
this.rediriger(requete, reponse); {
} doGet(requete, reponse);
// ---------------------- }
private void villesInsert(HttpServletRequest requete, }
HttpServletResponse reponse) throws ServletException, IOException
{
String lsMessage = "";
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
String cp = requete.getParameter("cp");
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
String nomVille = requete.getParameter("nomVille");
xmlns="http://java.sun.com/xml/ns/javaee"
String idPays = requete.getParameter("idPays");
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"
beanVilles.setCp(cp);
version="3.0">
beanVilles.setNomVille(nomVille);
<display-name>WebAppJSP</display-name>
beanVilles.setIdPays(idPays);
<servlet>
<description> </description>
lsMessage = beanVilles.insererVille(this.cn);
<display-name>VillesServlet</display-name>
<servlet-name>VillesServlet</servlet-name>
this.url = "/VillesInsertViaServlet.jsp?message=" +
<servlet-class>controle.VillesServlet</servlet-class>
lsMessage;
</servlet>
this.rediriger(requete, reponse);
<servlet-mapping>
}
<servlet-name>VillesServlet</servlet-name>
// ------------------- Renvoi vers une JSP
<url-pattern>/VillesServlet</url-pattern>
private void rediriger(HttpServletRequest requete,
</servlet-mapping>
HttpServletResponse reponse) throws ServletException, IOException
{
</web-app>
RequestDispatcher rd =
requete.getRequestDispatcher(this.url);
rd.forward(requete, reponse);
// -ou bien-
//reponse.sendRedirect(url);
}
// ------------------ "Garbaging"
public void destroy()
{
// --- La servlet s'assure de détruire les beans de portée
d'application instanciés au démarrage
// getServletContext().removeAttribute("beanVilles");
// getServletContext().removeAttribute("beanCnMySQL");
}
// --- Réception de valeurs et transmission à doGet()

Vous aimerez peut-être aussi