TP numéro 5 : Java Beans et JSP

Download Report

Transcript TP numéro 5 : Java Beans et JSP

Deuxième année Ingénierie Génie Logiciel
Développement Avancé
TP numéro 5 : Java Beans et JSP
(Enseignants de TP : M.L. JELLAD, F. NAKBI)
Partie 1 : Partie théorique sur les Java Beans
Les Java Beans sont des classes Java qui respectent les conventions suivantes :
 Les propriétés sont des attributs privés
Exempe : private String nom=null ;
 un constructeur public sans argument (par défaut).
 les propriétés d'un Bean sont accessibles au travers de méthodes getXXX
(lecture) et setXXX(écriture) portant le nom de la propriété.
La méthode de lecture des propriétés possède la signature suivante :
public TypeDePropriété getNomDeLaPropriété() ;
Exemple : public String getNom() ;
La méthode d'écriture des propriétés possède la signature suivante :
public void setNomDeLaPropriété (TypeDePropriété valeurDePropriété)
Exemple : public void setNom(String valeur);
M. L. Jellad, F. Nakbi
Page 1
TP numéro 5 en Développement avancé : Java Beans et JSP
L’utilisation d’un Bean avec la syntaxe Java est comme suite :
ExempleBean exemple = new ExempleBean() ;
exemple.setNom("Mohamed") ;
String leNom = exemple.getNom();
Utilisation d’un Bean avec la syntaxe XML dans une page JSP est comme suite :
Création simple d’une variable Bean dans une page JSP :
<jsp:useBean
id = "nomDuBean"
class = "nomPackage.NomClasse">
</jsp:useBean>
Id : c’est le nom de l’objet Bean.
Class : la classe NomClasse qui représente le Java Bean. Elle se trouve dans le package
nomPackage de l’application courante.
Remplir un champ propriété dans un Bean par une constante :
<jsp:setProperty name="nomDuBean"
property="uneProprieteDeBean" value="uneValeurConstante" />
Remplir un champ propriété dans un Bean par un paramètre d’un formulaire :
<jsp:setProperty
name="nomDuBean"
property="unePropriete"
param="nomduParametre />
Récupérer un champ propriété d’un Bean:
<jsp:getProperty name="nomDuBean" property="unePropriete"/>
M. L. Jellad, F. Nakbi
Page 2
TP numéro 5 en Développement avancé : Java Beans et JSP
Partie 2 : Exercice
1. Créer une classe nommée « Cours » dans le pakage « modeles ». Cette classe
répresente une Java Beans donc elle contient :
Les propriétés qui sont : code de type entier, nom de type chaine de caractère,
description de type chaine de chaine de caractère, url de type chaine de caractère et theme de
type chaine de caractère.
Les getteurs et les setteurs de ces propriétes : getNom(), setNom(), etc.
2. Copier le code SQL suivant dans la base de données « issat_intranet ».
Si la base n’existe pas créer une base de données nommée « issat_intranet ».
create database IF NOT EXISTS issat_intranet ;
use issat_intranet;
create table IF NOT EXISTS cours
(
code int primary key,
nom varchar(30) not null,
description varchar(255) not null,
url text null,
theme varchar(30) null
);
3. Créer un dossier nommé « cours » dans le dossier principale Web du projet
« IssatIntranet ». Créer une page Web HTML nommée « ajouter.html » dans le
répertoire « cours ». L’affichage souhaité est le suivant :
M. L. Jellad, F. Nakbi
Page 3
TP numéro 5 en Développement avancé : Java Beans et JSP
4.
Créer une page JSP nommée « ajouter.jsp » dans le dossier « cours ». Cette
page doit récupérer les paramètres du formulaire en utilisant les setteur des
propriétés d’un Java Bean de type modeles.Cours. Cette page JSP enregistre les
données récupérées dans la table « cours » de la base de données « issat_intranet ».
Notez bien l’utilisation de syntaxe Java est possible mais elle est interdite dans ce
TP. Utilisez alors la syntaxe XML pour la récupération (voir la partie 1), et pour la
sauvegarde dans la base de données (voir l’annexe 1 à la suite).
Si l’ajout dans la base de données est avec succès : la page JSP « ajouter.jsp » fait
une redirection à la page « index.jsp ».
Utiliser la directive XML pour faire le test :
<c:if test="${conditions}" >
Un traitement…
</c:if>
M. L. Jellad, F. Nakbi
Page 4
TP numéro 5 en Développement avancé : Java Beans et JSP
Utiliser la directive XML pour faire la redirection :
<c:redirect url="/cours/index.jsp" />
5.
Créer une page JSP nommée « index.jsp » qui permet d’afficher la liste des
cours qui existe dans la table « cours » de la base de données « issat_intranet » ; voir
l’annexe 2.
L’affichage souhaité est :
Annexe 1 : Sauvegarde dans la base de données avec la syntaxe XML à partir d’une
page JSP :
Utilisation de préfix SQL :
<%@taglib prefix="sql"
uri="http://java.sun.com/jsp/jstl/sql"%>
Connexion à la base de données :
<sql:setDataSource var="connexionBdDIssatIntranet"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/issat_intranet"
user="root"
M. L. Jellad, F. Nakbi
password=""/>
Page 5
TP numéro 5 en Développement avancé : Java Beans et JSP
Insertion dans la base de données :
<sql:update dataSource="${connexionBdDIssatIntranet}"
var="result">
INSERT INTO cours VALUES (
"<jsp:getProperty name="cours" property="code" />",
"<jsp:getProperty name="cours" property="nom" />",
"<jsp:getProperty name="cours" property="description" />",
"<jsp:getProperty name="cours" property="url" />",
"<jsp:getProperty name="cours" property="theme" />"
);
</sql:update>
Annexe 2 : Consultation des données de la table « cours » de la base de données
« issat_intranet » avec la syntaxe XML à partir d’une page JSP :
Utilisation de préfix SQL :
<%@taglib prefix="sql"
uri="http://java.sun.com/jsp/jstl/sql"%>
Connexion à la base de données :
<sql:setDataSource var="connexionBdDIssatIntranet"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/issat_intranet"
user="root"
password=""/>
La requête de sélection est :
<sql:query dataSource="${connexionBdDIssatIntranet}"
var="result"> SELECT * from cours;
</sql:query>
Le résultat de sélection est dans la variable nommée « result ».
M. L. Jellad, F. Nakbi
Page 6
TP numéro 5 en Développement avancé : Java Beans et JSP
Parcourir le résultat par la directive forEach de syntaxe XML :
<c:forEach var="row" items="${result.rows}">
<c:out value="${row.code}"/>
<c:out value="${row.nom}"/>
…
</c:forEach>
Le préfix c est nécessaire :
<%@taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core" %>
M. L. Jellad, F. Nakbi
Page 7