jsp java server pages. introduction afin dimplémenter les règles métiers, coté serveur dans une...

Post on 03-Apr-2015

102 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 en-

tê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);%>

top related