JSP01.

publicité
JSP
Java Server Pages
Introduction

Afin d’implémenter les règles
métiers, coté serveur dans une
application Web, l’architecture Java
propose trois solutions :



En pur JAVA (servlets);
À l’intérieur de code HTML (pages JSP);
Mixage des deux premiers solutions.
Servlets
Exemple Servlets
}
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ExempleServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse
res)
throws ServletException, IOException {
// positionnement du type de contenu
res.setContentType("text/html");
// écriture du contenu
PrintWriter out = res.getWriter();
out.println("<HTML>"); out.println("<HEAD>");
out.println("<TITLE>ExempleServlet</TITLE>");
out.println("</HEAD>"); out.println("<BODY>");
out.println("<H1 align="center">ExempleServlet</H1>");
out.println("</BODY>");
out.println("</HTML>");
out.close();
}
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.
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>
Solution mixte
Les solutions moderne des
applications Web, permettent de
mêler les deux premières solutions
(Servlets et JSP)
Eléments de JSP








Scriptlet;
Déclaration de variable;
Conditionnel;
L’objet out;
Déclaration de Tableau;
Boucle for;
Commentaire JSP;
Traitement des formulaires;
scriptlet

Afin d’indiquer au serveur que ce
qui suit est du JSP, en utilise la
balise <% ………. %>
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
Conditionnel






L’expression conditionnel s’effectue
par:
<%
if (condition) {
actions
}
%>








<%
if (condition) {
actions
}
else {
actions
}
%>
Exemple
<% int i = 0; %>
<html>
<head> <title> </title>
</head>
<body>
<h1>
<% ++1;
If (i==1) {
out.println(‘’vous etes le premier ‘’); }
Else {
out.print (‘’visiteur numero ‘’);
out.println(i); }
%>
</h1>
</body>
</html>
L’objet out

Out est un objet prédéfini dans les
pages JSP qui dispose de deux
méthodes :


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(….);
Exemple
<%! Int i = 0;%>
<html>
<head><title>exemple objet out </title> <head>
<body>
<h1 align = center> exemple </h1>
<% i++;
If (i==1) {
out.println(‘’Vous etes le premier visiteur’’);}
Else {
out.println(‘’Visiteur numero ‘’ + i); }
<br> date courante : <%=new java.util.date() %>
</body>
</html>
Déclaration de Tableau



Un tableau permet de gérer plusieurs
valeur de même type.
La déclaration se fait dans JAVA.
Exemple:

<%
double[] prix = {12.5, 14, 18};
int[] qtes = {50, 20, 30};
%>
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;
}
Exemple boucle for et tableau
<table border>
<tr>
<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>
Commentaire JSP


Un commentaire JSP s’effectue par
la balise
<!-- ……… -->
Remarque : si le commentaire est
dans le scriptlet c’est un
commentaire JAVA.
Traitement des formulaires



Introduction;
Méthodes GET et POST;
Récupération de la valeur d’un
paramètre;
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’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.
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.
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.
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
getParameter qui cherche la
valeur d’un paramètre d’un
formulaire.
Exemple de getParamater
<%
String nomUtilisateur =
request.getParameter(‘’nom’’);
String MotDePasse =
request.getParameter(‘’motDePasse’’);
%>
Paramètres à valeurs multiples


Un paramètre peut avoir une valeur
multiple. Dans ce cas, il faut utiliser
la méthode getParameterValues().
Cette méthode renvoie un tableau de
chaînes de caractères.
Exemple de paramètres à valeurs
multiples
<%
String[] sportsFavoris =
request.getParameterValues(‘’sp’’);
Out.println(‘’<ul>’’);
For (int i=0; i < sprortsFavoris.length ;
i++) {
out.println(‘’<li>’’ + sportsFavoris[i] +
‘’</li>’’);}
Out.println(‘’</ul>’’);
%>
Noms des paramètres

La méthode getParameterNames
permet d’obtenir un tableau contenant
les noms de tous les paramètres
présents dans la requête.
Conversion d’une chaîne


La méthode getParameter 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 :
 Byte.parseByte;
 Short.parseShort;
 Integer.parseInt;
 Long.parseLong;
 Float.parseFloat;
 Double.parseDouble.
Exemple
<%
String nbLignesCh =
request.getParameter(‘’nblignes’’);
Int nbLignes =
Integer.parseInt(nbLignesCh);
%>
Téléchargement