JSP Java Server Pages Cours JSP 1 Introduction

  • Slides: 51
Download presentation
JSP Java Server Pages Cours JSP 1

JSP Java Server Pages Cours JSP 1

Introduction ¡ Afin d’implémenter les règles métiers, coté serveur dans une application Web, l’architecture

Introduction ¡ Afin d’implémenter les règles métiers, coté serveur dans une application Web, l’architecture Java propose trois solutions : l l l Cours JSP En pur JAVA (servlets); À l’intérieur de code HTML (pages JSP); Mixage des deux premiers solutions. 2

Servlets Cours JSP 3

Servlets Cours JSP 3

Exemple Servlets } import java. io. *; import javax. servlet. http. *; public class

Exemple Servlets } import java. io. *; import javax. servlet. http. *; public class Exemple. Servlet extends Http. Servlet { public void do. Get(Http. Servlet. Request req, Http. Servlet. Response res) throws Servlet. Exception, IOException { // positionnement du type de contenu res. set. Content. Type("text/html"); // écriture du contenu Print. Writer out = res. get. Writer(); out. println("<HTML>"); out. println("<HEAD>"); out. println("<TITLE>Exemple. Servlet</TITLE>"); out. println("</HEAD>"); out. println("<BODY>"); out. println("<H 1 align="center">Exemple. Servlet</H 1>"); out. println("</BODY>"); out. println("</HTML>"); out. close(); } Cours JSP 4

JSP Consiste à insérer dans le code HTML des instructions qui sont exécutées sur

JSP Consiste à insérer dans le code HTML des instructions qui sont exécutées sur le serveur. ¡ Lorsque la page est sollicitée par une requête, ces instructions peuvent produire de l’HTML mais aussi accéder à une base de données et effectuer des calculs. ¡ Cours JSP 5

Exemple JSP <%! Int compteur =0; %> <HTML> <BODY> Bonjour. <BR> <% compteur ++;

Exemple JSP <%! Int compteur =0; %> <HTML> <BODY> Bonjour. <BR> <% compteur ++; if (compteur == 1) %> Vous etes le premier visiteur. <% else %> Vous etes le <%=compteur %> eme visiteur. </BODY> </HTML> Cours JSP 6

Solution mixte Les solutions moderne des applications Web, permettent de mêler les deux premières

Solution mixte Les solutions moderne des applications Web, permettent de mêler les deux premières solutions (Servlets et JSP) Cours JSP 7

Eléments de JSP Scriptlet; ¡ Déclaration de variable; ¡ Conditionnel; ¡ L’objet out; ¡

Eléments de JSP Scriptlet; ¡ Déclaration de variable; ¡ Conditionnel; ¡ L’objet out; ¡ Déclaration de Tableau; ¡ Boucle for; ¡ Commentaire JSP; ¡ Traitement des formulaires; ¡ Accès aux bases de données; Cours JSP ¡ 8

scriptlet ¡ Cours JSP Afin d’indiquer au serveur que ce qui suit est du

scriptlet ¡ Cours JSP Afin d’indiquer au serveur que ce qui suit est du JSP, en utilise la balise <% ………. %> 9

Déclaration de variable La balise <%! ……%> ¡ Permet de déclarer une variable. ¡

Déclaration de variable La balise <%! ……%> ¡ Permet de déclarer une variable. ¡ Exemple: ¡ <%! Int i; %> ¡ <%! Int i = 0; %> ¡ <%! Float f, g = 1. 2, h; %> ¡ Remarque: l’identificateur d’une variable doit respecter les règles des variables dans JAVA ¡ Cours JSP 10

Conditionnel L’expression conditionnel s’effectue par: ¡ <% ¡ if (condition) { ¡ actions ¡

Conditionnel L’expression conditionnel s’effectue par: ¡ <% ¡ if (condition) { ¡ actions ¡ } ¡ %> ¡ Cours JSP 11

<% ¡ if (condition) { ¡ actions ¡ } ¡ else { ¡ actions

<% ¡ if (condition) { ¡ actions ¡ } ¡ else { ¡ actions ¡ } ¡ %> ¡ Cours JSP 12

Exemple <% int i = 0; %> <html> <head> <title> </head> <body> <h 1>

Exemple <% int i = 0; %> <html> <head> <title> </head> <body> <h 1> <% ++1; If (i==1) { out. println(‘’vous etes le premier ‘’); } Else { out. print (‘’visiteur numero ‘’); out. println(i); } %> </h 1> </body> </html> Cours JSP 13

L’objet out ¡ Out est un objet prédéfini dans les pages JSP qui dispose

L’objet out ¡ Out est un objet prédéfini dans les pages JSP qui dispose de deux méthodes : l l Cours JSP Print : pour afficher sur la page une information syntaxe : out. print(…. . ); Println : pour afficher sur la page une information avec un saut de ligne. syntaxe : out. prinln(…. ); 14

Exemple <%! Int i = 0; %> <html> <head><title>exemple objet out </title> </head> <body>

Exemple <%! Int i = 0; %> <html> <head><title>exemple objet out </title> </head> <body> <h 1 align = center> exemple </h 1> <% i++; If (i==1) { out. println(‘’Vous etes le premier visiteur’’); } Else { out. println(‘’Visiteur numero ‘’ + i); } %> date courante : <%=new java. util. date() %> </body> </html> Cours JSP 15

Déclaration de Tableau Un tableau permet de gérer plusieurs valeur de même type. ¡

Déclaration de Tableau Un tableau permet de gérer plusieurs valeur de même type. ¡ La déclaration se fait dans JAVA. ¡ Exemple: ¡ l Cours JSP <% double[] prix = {12. 5, 14, 18}; int[] qtes = {50, 20, 30}; %> 16

Boucle for La boucle for est constituée d’un entête entre parenthèses et d’un corps.

Boucle for La boucle for est constituée d’un entête entre parenthèses et d’un corps. ¡ Syntaxe : for (variable itérative; condition d’interaction; pas) { actions; } ¡ Cours JSP 17

Exemple boucle for et tableau <table border> <th>Quantite</th> <th>Prix</th> </tr> <% for (int i=0;

Exemple boucle for et tableau <table border> <th>Quantite</th> <th>Prix</th> </tr> <% for (int i=0; i< prix. length; i++) { out. println(‘’<tr>’’); out. print(‘’<td>’’); out. print(qtes[i]); out. print(</td>); out. print(‘’<td>’’); out. print(prix[i]); out. print(</td></tr>); %> </table> Cours JSP 18

Commentaire JSP Un commentaire JSP s’effectue par la balise <!-- ……… --> ¡ Remarque

Commentaire JSP Un commentaire JSP s’effectue par la balise <!-- ……… --> ¡ Remarque : si le commentaire est dans le scriptlet c’est un commentaire JAVA. ¡ Cours JSP 19

Traitement des formulaires Introduction; ¡ Méthodes GET et POST; ¡ Récupération de la valeur

Traitement des formulaires Introduction; ¡ Méthodes GET et POST; ¡ Récupération de la valeur d’un paramètre; ¡ Cours JSP 20

Introduction L’intérêt des formulaires est de pouvoir introduire des données en vue d’être traitées

Introduction L’intérêt des formulaires est de pouvoir introduire des données en vue d’être traitées par une logique métier. ¡ L’utilisation de formulaire et fait en deux temps: ¡ l l Cours JSP L’utilisateur remplit un formulaire et le soumet au serveur. Le serveur extrait les informations fournies par l’utilisateur et les utilise pour construire la réponse. 21

Method GET Si l’attribut method de la balise form est get, le navigateur met

Method GET Si l’attribut method de la balise form est get, le navigateur met les valeurs des paramètres dans l’en-tête de la requête elle-même. ¡ De plus, la requête contient en clair les valeurs des paramètres et est stockée telle quelle dans l’historique, ce qui est judicieux si l’un de ces paramètres est un mot de passe. ¡ Cours JSP 22

Method POST Si l’attribut method de la balise form est post, le navigateur met

Method POST Si l’attribut method de la balise form est post, le navigateur met les valeurs des paramètres dans l’en -tête de la requête elle-même. ¡ Avec post, les valeurs des paramètres ne sont pas affichées dans l’URL. ¡ Cours JSP 23

Récupération de la valeur d’un paramètre. La récupération de la valeur d’un paramètre s’effectue

Récupération de la valeur d’un paramètre. La récupération de la valeur d’un paramètre s’effectue à travers l’objet request. ¡ Cet objet dispose d’une méthode get. Parameter qui cherche la valeur d’un paramètre d’un formulaire. ¡ Cours JSP 24

Exemple de get. Paramater <% String nom. Utilisateur = request. get. Parameter(‘’nom’’); String Mot.

Exemple de get. Paramater <% String nom. Utilisateur = request. get. Parameter(‘’nom’’); String Mot. De. Passe = request. get. Parameter(‘’mot. De. Passe’’); %> Cours JSP 25

Paramètres à valeurs multiples Un paramètre peut avoir une valeur multiple. Dans ce cas,

Paramètres à valeurs multiples Un paramètre peut avoir une valeur multiple. Dans ce cas, il faut utiliser la méthode get. Parameter. Values(). ¡ Cette méthode renvoie un tableau de chaînes de caractères. ¡ Cours JSP 26

Exemple de paramètres à valeurs multiples <% String[] sports. Favoris = request. get. Parameter.

Exemple de paramètres à valeurs multiples <% String[] sports. Favoris = request. get. Parameter. Values(‘’sp’’); Out. println(‘’<ul>’’); For (int i=0; i < sprorts. Favoris. length ; i++) { out. println(‘’<li>’’ + sports. Favoris[i] + ‘’</li>’’); } Out. println(‘’</ul>’’); %> Cours JSP 27

Noms des paramètres ¡ Cours JSP La méthode get. Parameter. Names permet d’obtenir un

Noms des paramètres ¡ Cours JSP La méthode get. Parameter. Names permet d’obtenir un tableau contenant les noms de tous les paramètres présents dans la requête. 28

Conversion d’une chaîne ¡ ¡ La méthode get. Parameter renvoie une chaîne de caractères.

Conversion d’une chaîne ¡ ¡ La méthode get. Parameter renvoie une chaîne de caractères. Si le paramètre est une valeur numérique, il faut convertir la chaîne de caractères en nombre pour pouvoir l’utiliser. Cela se fait par la méthode JAVA appropriée : l Byte. parse. Byte; l Short. parse. Short; l Integer. parse. Int; l Long. parse. Long; l Float. parse. Float; l Double. parse. Double. Cours JSP 29

Exemple <% String nb. Lignes. Ch = request. get. Parameter(‘’nblignes’’); Int nb. Lignes =

Exemple <% String nb. Lignes. Ch = request. get. Parameter(‘’nblignes’’); Int nb. Lignes = Integer. parse. Int(nb. Lignes. Ch); %> Cours JSP 30

Accès aux bases de données Java fournit une architecture standard pour dialoguer avec les

Accès aux bases de données Java fournit une architecture standard pour dialoguer avec les bases de données. ¡ Affin d’assurer la compatibilité de Java avec un maximum de base de données, ses concepts ont adopté l’architecture classique de pilotes. ¡ L’application Java (ou page JSP) utilise les mêmes instructions JDBC pour s’adresser au pilote. ¡ Cours JSP 31

Quand un programme (une page JSP) souhaite accéder à une base, il commence par

Quand un programme (une page JSP) souhaite accéder à une base, il commence par demander le chargement du pilote en mémoire. Pour cela, il faut que la page JSP trouve ce pilote. Cours JSP 32

Conditions d’accès à une base de données. Installer le pilote pour que la page

Conditions d’accès à une base de données. Installer le pilote pour que la page JSP puisse le trouver; ¡ Dans la page JSP, demander le chargement en mémoire du pilote; ¡ Dans la page JSP, utiliser le pilote pour établir la connexion, effectuer les requêtes souhaitées. ¡ Cours JSP 33

Installation d’un pilote. Cette action n’est faite qu’une seul fois, au moment du déploiement.

Installation d’un pilote. Cette action n’est faite qu’une seul fois, au moment du déploiement. ¡ Retrouver le pilote dans le dossier shared de Tomcat; ¡ Copier le pilote sous forme archive jar sans le décompacter, dans l’un des dossiers suivants: ¡ Cours JSP 34

Option 1 d’installation du pilote ¡ Le pilote peut être placer dans le dossier

Option 1 d’installation du pilote ¡ Le pilote peut être placer dans le dossier lib; $TOMCAT_HOME/shared/lib Redémarrer Tomcat, pour la prise en charge du pilote. Cours JSP 35

Option 2 d’installation du pilote ¡ Le pilote peut être placer dans le dossier

Option 2 d’installation du pilote ¡ Le pilote peut être placer dans le dossier $TOMCAT_HOME/common/lib Redémarrer Tomcat Ceci rend le pilote accessible par toutes les applications web ainsi que Tomcat lui-même. Cours JSP 36

Option 3 d’installation du pilote ¡ Le pilote peut aussi être placer dans le

Option 3 d’installation du pilote ¡ Le pilote peut aussi être placer dans le dossier $TOMCAT_HOME/webapps/nom_applicati on/WEB-INFO/lib Redémarrer l’application web «nom_application » Cours JSP 37

Accès à partir d’une page JSP L’utilisation d’une base de données à partir de

Accès à partir d’une page JSP L’utilisation d’une base de données à partir de d’une page JSP comporte les étapes suivantes: 1. Avoir le droit d’accès à un serveur de base de données; 2. Disposer d’un pilote correspondant à la base; 3. Charger le pilote en mémoire; 4. Ouvrir une connexion vers la base; 5. Effectuer des requêtes et exploiter les résultats; 6. Libérer les ressources, en particulier fermer la connexion. Les deux premiers étapes ont déjà été réalisées. Cours JSP 38

Chargement du pilote en mémoire ¡ ¡ ¡ Il exit plusieurs manier de charger

Chargement du pilote en mémoire ¡ ¡ ¡ Il exit plusieurs manier de charger un pilote à partir d’une page JSP dont voici une; Class. for. Name(nom de la classe); Exemple de chargement d’un pilote «mysql» par une page JSP: Class. for. Name(‘’com. mysql. jdbc. Driver’’) Cours JSP 39

Etablissement de la connexion ¡ La connexion vers une base de donnée se fait

Etablissement de la connexion ¡ La connexion vers une base de donnée se fait par: Java. sql. Connection cnx = Java. sql. Driver. Manager. get. Connection (url. Dela. Base, login, mot. De. Passe); Cours JSP 40

Préparation de la requête Une fois la connexion établie, on peut l’utiliser autant de

Préparation de la requête Une fois la connexion établie, on peut l’utiliser autant de fois qu’on le souhaite; ¡ Pour cela, on lui demande d’instancier une requête par : ¡ Java. sql. Statement req = cnx. create. Statement(); Cours JSP 41

Exécution d’un SELECT ¡ 1. 2. Cours JSP L’exécution d’une requête SQL SELECT se

Exécution d’un SELECT ¡ 1. 2. Cours JSP L’exécution d’une requête SQL SELECT se décompose on deux partie à savoir: L’envoi de la requête; L’exploitation du résultat. 42

Envoi de la requête ¡ ¡ Cours JSP Pour effectuer une reqête de consultation

Envoi de la requête ¡ ¡ Cours JSP Pour effectuer une reqête de consultation (select), on invoque la méthode execute. Query du Statement en lui passant la requête SQL à effectuer. Le résultat de cette requête est un ensemble de ligne représenté en JAVA par une instance de java. sql. Result. Set. Exemple: Java. sql. Result. Set rs = req. execute. Query(‘’SELECT * FROM Client’’); 43

Exploitation des résultats Un java. sql. Result est un moyen de parcourir le résultat

Exploitation des résultats Un java. sql. Result est un moyen de parcourir le résultat d’une requête SELECT. ¡ Un tel objet possède la méthode next. ¡ Cette méthode ne prend pas d’argument et revoie vrai (s’il y a au moins une ligne) ou faux. Cours JSP 44

Exploitation des résultats ¡ Cet objet possède aussi des méthodes qui permettent de consulter

Exploitation des résultats ¡ Cet objet possède aussi des méthodes qui permettent de consulter le contenu de la ligne courante dans le résultat: l l Cours JSP get. String(nom de la colonne); get. Int(nom de la colonne); get. Date(nom de la colonne); get. Double(nom de la colone); 45

Exemple d’utilisation du résultat <% Out. println(‘’<table border=‘ 1’>’’; Out. println(‘’<tr>’’); Out. println(‘’<th>Nom</th><th>Ville</th>’’); Out.

Exemple d’utilisation du résultat <% Out. println(‘’<table border=‘ 1’>’’; Out. println(‘’<tr>’’); Out. println(‘’<th>Nom</th><th>Ville</th>’’); Out. println(‘’</tr>’’); While (rs. next()) { out. println(‘’<tr>’’); out. print(‘’<td>rs. get. String(‘’nom’’)</td>’’); out. print(‘’<td>rs. get. String(‘’Ville’’)</td>’’); out. println(‘’</tr>’’); } Out. println(‘’</table>’’; %> Cours JSP 46

Fermeture des différents élements À la fin de l’utilisation d’une base de donnée il

Fermeture des différents élements À la fin de l’utilisation d’une base de donnée il est impératif d’effectuer une fermeture de cette dernière. ¡ Cette opération de fermeture s’effectue par le message close qui doit être envoyer respectivement à Result. Set, puis à Statement et enfin à la Connection. ¡ Cours JSP 47

Exemple de fermeture ¡ ¡ ¡ Cours JSP rs. close; req. close; cnx. close;

Exemple de fermeture ¡ ¡ ¡ Cours JSP rs. close; req. close; cnx. close; 48

Exécution d’un INSERT ou d’un UPDATE Pour effectuer une requête de modification (insert, update),

Exécution d’un INSERT ou d’un UPDATE Pour effectuer une requête de modification (insert, update), on demande au Statement la méthode execute. Update en lui passant la requête SQL à effectuer. ¡ On obtient en résultat le nombre de lignes qui ont été affectées par la requête. ¡ Cours JSP 49

Exemple d’INSERT Int nb. Lignes = req. execute. Update (‘’INSERT INTO client VALUES (3,

Exemple d’INSERT Int nb. Lignes = req. execute. Update (‘’INSERT INTO client VALUES (3, ’Ali’, ‘Mohamed’, ‘Constantine’); Cours JSP 50

Exemple d’UPDATE Int nb. Lignes = req. execute. Update (‘’UPDATE client SET ville =

Exemple d’UPDATE Int nb. Lignes = req. execute. Update (‘’UPDATE client SET ville = ‘Annaba’ WHERE nom = ‘Ali’); Cours JSP 51