65
1 Architecture et Développement WEB - Pierre.jean @ ema.fr Architecture et Développement Web Les principes du Web Dynamique Les outils et techniques de développement

Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

  • Upload
    lynga

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

1

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Architecture et Développement Web

� Les principes du Web Dynamique� Les outils et techniques de développement

Page 2: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

2

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Introduction

� Présentation du formateur� L'objectifs de la formation

� Les bases du développement Web� Le principe pour faire du Web dynamique� Utilisation d'une base de données SQL� Initiation au Modèle-Vue-Contrôleur

� Les questions sont bienvenues� N’hésitez pas à me contacter [email protected]

Page 3: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

3

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Les grandes lignes de la formation

� Acquérir les bases du Web dynamique� Apprendre la programmation Web� Construire une application Web� Adapter une base de données SQL au Web� S'habituer au Model-Vue-Contrôleur� Faire marcher tous les éléments ensembles

techniques ensemble pour créer un site Internet

Page 4: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

4

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Invitations

� La formation vous invite fortement à être des utilisateurs curieux et dynamiques des outils d'Internet

� La conception de sites Web s'inspire très largement de l'existant qu'il faut donc consulter

� L’examen final par réalisation d’une application web dans un temps donnée

Page 5: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

5

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Des outils simples souvent gratuit

� Un éditeur de texte: Bloc-notes de Windows, Ultra-edit32, Notepad++, Dreamweaver, Eclipse Pdt, Eclipse J2EE

� Un navigateur Internet : Internet Explorer, Mozilla Firefox, Opera, Safari, Chrome, Chromium

� Un serveur Web: Apache, Ms-IIS, Tomcat, nginx� Un outil de base de données: Mysql, Oracle,

PostgreSql, Ms SQL Server� Un langage de développement orienté Web: Php,

Asp.Net, Java J2EE, Perl, Python, Ruby on Rail

Page 6: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

6

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

La sauvegarde des données:

� Attention l'utilisation des ordinateurs en réseau obligent à une sauvegarde spécifiques des données,

� A votre charge:� Les bases de données� Les fichiers des pages dynamiques� Les fichiers de configurations spécifiques

Page 7: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

7

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Pour du développement Java

� Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ensemble� Eclipse IDE Java EE Developers� Apache Tomcat 7.x

� Vérifier que vous utilisez le JDK et non le JRE de la machine virtuelle java

Page 8: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

8

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Conseils

� Faites des sauvegardes multiples sur le disque� N'hésitez pas à demander un

rafraîchissement/actualisation des pages Web dans votre navigateur en appuyant sur le bouton correspondant (ou la touche F5)

� Afficher le code source de la page HTML par clic droit sur la page "Afficher le source"

� Désactiver le cache du navigateur� Outils intégrés des navigateurs / firebug

Page 9: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

9

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Base de l'architecture et vocabulaire

� Chapitre 1: � TCP/IP et DNS� Outils Web� Une communication asynchrone� HTML: Hyper Text Markup Language� Structure d'une page HTML� Tag HTML: exemples� HTML: attributs et imbrications� De l'URL à l'Information� Les adresses des documents� De l'URL à l'Information

Page 10: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

10

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

TCP/IP et DNS

� Transmissions d'informations par paquets� Chaque paquet à l'adresse expéditeur et

destinataire� Database Name Server (fichier host)� Synchronisation des DNS mondiaux

Page 11: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

11

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Outils WEB

� Publication de documents: Serveur Web,Navigateur� Transmission de données par FTP, SFTP� Des outils historiques: Mail, News, ICQ� De nouveaux outils: P2P, VoIP, Certificat,

Streaming, Dropbox-like� L'hébergement, FAI, Registrar, DNS, Serveur dédié

Page 12: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

12

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Une communication asynchrone

GET /index.html HTTP/1.1 Host: www.example.com Accept: text/plainAccept-Charset: iso-8859-5Accept-Encoding: compress, gzipAccept-Language: frDate: Tue, 14 Jan 2008 08:12:31 GMTUser-Agent: Mozilla/5.0 (Linux; X11; UTF-8)

HTTP/1.1 200 OKDate: Mon, 14 January 2008 08:13:34 GMTServer: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)Last-Modified: Wed, 09 Jan 2008 13:11:55 GMTAccept-Ranges: bytesContent-Length: 438Connection: closeContent-Type: text/html; charset=UTF-8

Page 13: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

13

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Le Web=échange d'informations

http://www.test.com/fr/index.htmlDomaine: .com

Sous domaine: testServeur: www

Racine du site: /Dossier: fr/

Fichier: index.html

� Requête URL: Unified Ressource Locator

<html><head><title>Site test.com</title></head><body>Bonjour</body></html>

Cache du navigateur

Page 14: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

14

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

HTML: Hyper Text Markup Language

� Langage de présentation de l'information� Normé par le W3C: xhtml 2.0 et html 5� Les Tags s'imbriquent comme des parenthèses dans

un calcul<body><h1>bonjour</h1></body>

� Tag solitaire dans certain cas: <br />� Validation du code html sur les différents navigateurs

du marché: <br> <br/> <br />

Cache du navigateur Interprétation

Page 15: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

15

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Structure d'une page HTML

� Exemple : <html><head></head><body></body></html>

� Pour indiquer un commentaire que le navigateur ne va pas interpréter:

<!-- votre commentaire -->� Tout ce qui n'est pas tag ou commentaire entre les

tags <body> et </body> est donc affiché comme étant du texte.

� Les retour à la ligne et les espaces multiples ne sont pas pris en compte par le navigateur. Il faut en profiter pour éclaircir le code HTML.

Page 16: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

16

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Tag HTML: exemples

� Dans le <head><title>Le titre de la page </title><meta tag name="keywords"

content="mot1,mot2,mot3"><meta name="description" content="autres

informations récupérées sur Internet.">� Dans le <body>

<h1>Titre1</h1><h2>Titre2</h2><p> un paragraphe </p><div>Regroupement d’information</div><ul><li>Matin</li><li>Soir</li></ul>

Page 17: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

17

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

HTML: attributs et imbrications

� Attributs de tag<p align="right">Paragraphe</p><img src="image.gif" alt="Image"><a href="in.html" >ici</a><a name="bas_de_page">

� Imbrications des tags<p>Pour voir l’image en grand cliquez dessus <a

href="image-grand.jpg"><img src=" image-petite.jpg" /></a></p>

Page 18: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

18

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Les adresses des documents

� Côté serveur un seul document (page Web, fichier image, document Word, etc) est identifiable par son URL

� L'identification est absolue tout comme pour un fichier sur un disque dur� http://www.ema.fr/logo.gif� http://localhost/documents/cv/cv-fr.pdf� http://www.ema.fr/� http://www.ema.fr/index.html

� L'identification peut être relative à la page actuellement affichée dans le navigateur

<a href="acceuil.html"><img src="../logos/fr/ema.gif">

Page 19: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

19

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

De l'URL à l'Information

� URL absolue http://www.test.fr/documents/cv/cv-fr.pdf

� L'identification peut être relative à la page actuellement affichée dans le navigateur

<a href="acceuil.html"><img src="../logos/fr/ema.gif">

Ordinateur D:\web\ wwwsite1\ rep1\srep12\ page4.htmlURI file://d:/web/wwwsite1/rep1/srep12/page4.html

URL http://www.test.fr/rep1/srep12/page4.htmlServeur Web Sites wwwsite1/ rep1/srep12/ page4.html

Page 20: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

20

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Web dynamique

� Chapitre 2: � Du Web statique au Dynamique� Exemple avec la date du jour� But d'une requête de formulaire� Les différents types de requêtes� La méthodes GET de requête� La méthodes POST de requêtes� Formulaire GET et POST� Récupération du formulaire côté serveur� Scénario d’échange de données� La session utilisateur� Les information de la session utilisateur

Page 21: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

21

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Du Web statique au Dynamique

� Le concept de page HTML virtuellement construite à la demande :� Je fabrique une page HTML où l'heure et la date

sont insérées pour présenté une page HTML différente toutes les secondes

� La SNCF ne peux préparer à l'avance tous les trajets possibles entre 2 destinations via une troisième ou indiqué des retards sans Web dynamique

Page 22: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

22

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Etape 2: exécution par le module php du code php

Etape 3: Génération de la page html en mémoire

Exemple avec la date du jour 1/3

Etape 1: Accès à la page index.php stockée sur le

serveur webLe navigateur de

l’internaute demande l’URL suivante

http://localhost/index.php

Le navigateur de l’internaute

affiche l’HTML

Page 23: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

23

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Exemple avec la date du jour 2/3

Page index.jspSur le serveur web

Page Web consulté depuis le navigateur de l’internaute

via http://localhost/Jsp/index.jsp

Code source de la page générée

Page 24: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

24

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Exemple avec la date du jour 3/3

Page index.phpSur le serveur web

Page Web consulté depuis le navigateur de l’internaute

via http://localhost/index.php

Code source de la page générée

Page 25: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

25

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

But d'une requête de formulaire

� L’interaction entre l’internaute et le serveur web ne peut se limiter à des demandes de pages via des URL

� Une requête de formulaire permet de demander à l'utilisateur via son navigateur de remplir des informations par des champs de saisies: champs texte, cases à cocher, liste déroutante, etc.

� A la fin, l'utilisateur soumet son formulaire (envoie toutes les données saisies) au serveur web via une page/programme

� Le serveur n’a connaissance des données la page qu’au moment de sa soumission

Page 26: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

26

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Les différents types de requêtes

� 2 familles de requêtes Web du client vers le serveurs�La requête classique de demande de page

Web ou d'image �http://localhost/login.html�http://www.ema.fr/logo.gif

<a href="index.html"><img src="logo.gif">

�La requête de formulaire où le client envoie des données pertinentes à un programme du serveur web

Page 27: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

27

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

La méthodes GET de requête

� La méthode classique est le GET:�L'intégralité des données sont indiquées

dans l'URL de la nouvelle page/programme qui va traiter les données

login.php?nom=jean&prenom=pierree

�Toutes les informations sont visibles dans l'URL: débogage, visibilité, bookmark

�Méthode classique pour les liens et les images

Page 28: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

28

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

La méthodes POST de requêtes

� La méthode POST:�Les données sont envoyés dans l'entête du

fichier POST�Adapté aux grosses quantités de données

par exemple l'expédition de fichier�Meilleur rendu visuel en production

� Les 2 méthodes étant rapidement interchangeable, le mieux est de faire du GET puis de passer en POST pour la production

Page 29: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

29

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Formulaire GET et POST 1/3

http://localhost/test.php?Nom=Jean&Civ=Mr&go=go

<form action="test.php" method="get" >Votre Nom:<input type="text" name="Nom">Mr:<input type="radio" name= "Civ" value="Mr">Mme:<input type="radio" name= "Civ" value="Mme"><input type="submit" name="go" value="go"></form>

Page 30: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

30

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Formulaire GET et POST 2/3

<form name="login" method="get" action="login.php"><input type="text" name="nom" value="Entrez

votre nom"><input type="hidden" name="idsession"

value="367821"><input type="radio" name="Civ" value="M"> <input

type="radio" name="Civ" value="Mme" checked><input type="submit" name="Action" value="login">

</form>

Page 31: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

31

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Formulaire GET et POST 3/3

<form method="get" action="test.php"><input type="checkbox" name="anglais"

value="lu"><input type="checkbox" name="anglais" value="parlé">

<select name="Langues" multiple><option value="US">Anglais</option><option value="ES">Espagnol</option><option value="All">Allemand</option>

</select><textarea Name="Info"></textarea><input type="submit" name="Action"

value="Envoyer"></form>

Page 32: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

32

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Récupération du formulaire côté serveur

test.php

$_REQUEST["Nom"]$_REQUEST["Civ"]$_REQUEST["Valider"]

http://localhost/test.php?Nom=Jean&Civ=Mr&Valider=o k

Page 33: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

33

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Récupération du formulaire côté serveur

test.jsp

request.getParameter("Civ")request.getParameter("Nom")request.getParameter("Valider")

http://localhost/test.php?Nom=Jean&Civ=Mr&valider=o k

Page 34: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

34

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

INTE

RN

ET

Scénario d’échange de données

Http Get PostTraitement des variables et des

données(x)HTML

Durée de vie du programme

Traitement des variables et des

données

Traitement des variables et des

données

Page 35: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

35

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

La session utilisateur

� Le but d’une session est d’identifier un internaute et de le différencier des autres internautes

� La différenciation peut se faire par:Un cookie de session, crypté ou nonUn champ caché ou non de session dont

l’information est crypté ou nonUne authentification par le navigateur

� Attention à la durée de vie de la session, au time-out de la session

� Tentative d’utilisation d’une session mal fermée, rejouer une session et processus de double authentification

� <img src="page.php?action=disable&article=45">

Page 36: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

36

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Les information de la session utilisateur

Variables globales ou d’application

Variables de sessions

Variables de sessions

Variables de sessions

Variable de sessions en JSP:session.setAttribute(variable,valeur);session.getAttribute( variable);

Variable d’applications en JSP:getServletContext().setAttribute(var, val);getServletContext().getAttribute(var);

Variable de sessions en PHP:session_start();$_SESSION[var] = val;

Variable d’applications en PHP:define( 'PI' , 3.14159265 );

Page 37: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

37

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Technologies Web

� Chapitre 3: � Architecture de l’application web� Architecture 3 tiers� Accès à la couche de persistance� Css: Cascading Style Sheet� Framework Bootstrap� Javascript� DOM: Document Object Model� Web 2.0� Ajax� AngularJS

Page 38: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

38

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

INTE

RN

ET

Architecture de l’application web

Http Get PostODBC JDBC SQL

Variables/Objets(x)HTML

Durée de vie du programme

Durée de vie de la requête SQL

Durée de la réponse de la requête Web

LOC

AL o

u IN

TRAN

ET

Page 39: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

39

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Architecture 3 tiers

Architecture de base d'une application Web

� Couche présentation de l'information, les vues utilisateurs:

xHTML, Javascript, Flash, ActiveX, PDF, Applet Java, Xml, CSS, svg, etc.

� Couche métier, applicative, système d’information: ASP.NET, PHP, Java, CGI, Perl, Ruby, C#,

Python, etc.

� Couche de persistance, base de donnéesMysql, Oracle, MS-SQL, Postgresql, Firebug, etc.

Page 40: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

40

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

<?php$connect= mysql_connect("localhost", "userDB","passwordDB");mysql_select_db(“Systeme_information");if (! $connect ) die("Erreur de connection");

$resultat=mysql_query(“select * from client");mysql_close($connect);?>

Accès à la couche de persistance

INTE

RN

ET

Page 41: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

41

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

CSS: Cascading Style Sheet 1/3

� Évolution du langage HTML pour simplifier et améliorer le design de site Web� Plutôt que de mettre tous les titres de la page en

gras, italique, alignés à gauche� Définir un style commun:

h1.titre1{font-weight: bold; font-style:italic; text-align:left; }<h1 class="titre1">

� Évolution du langage HTML pour simplifier et améliorer le design de site Web

� Identifier un tag par son nom de tag, son id unique dans la page ou par une classe

� Identifier un tag par des notions d’ordre, ensembliste ou de contrainte

Page 42: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

42

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

CSS: Cascading Style Sheet 2/3

� Fichier de style commun à un site Web et donc à plusieurs pages

<style type="text/css"> @import url(/styles/habillage.css); </style>

� Extraire la présentation du contenue pour permettre d’accélérer les temps de chargement et de complexifier les présentation

� Css Zen garden: 1 fichier HTML pour plusieurs fichiers css

Page 43: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

43

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

CSS: Cascading Style Sheet 3/3

<html><head><style type="text/css">

h1{font-size : 2em; margin : 0.67em 0;}.attention{ color:red; }#intro{ font-style: italic; }h3.attention{ color: black; }

</style> <body><h1>Titre du site web</h1><p class="attention">Ce site est en construction</p><p id="intro" class="attention"> L’introduction…</p><h3 class="attention">le 6 janvier 2008</h3></body></html>

Page 44: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

44

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Framework Bootstrap

� Grille de présentation de 12 colonnes

<div class="form-group"><div class="col-sm-offset-2 col-sm-

10"><div class="checkbox"><label><input name=“remenberMe"

type="checkbox">Remember me

</label></div>

</div></div>

Page 45: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

45

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Javascript 1/2

� Un langage embarqué dans la page HTML� Permet la manipulation et le contrôle des données

dans le navigateur� Bibliothèque AngularJS, Jquery, Prototype, etc.

http/Ajax

Get PostMVC Javascript

MVC Server Side

Page 46: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

46

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Javascript 2/2

� Version de Javascript selon les navigateurs � Une langage de référence

� débuggeur,� programmation par prototypage,� bibliothèques multi navigateur

� De plus en plus universel� Fonction anonyme en paramètre� $ = rechercher dans le DOM

Page 47: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

47

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

DOM: Document Object Model

� Décomposition d’un document xhtml en zone et en éléments

<html><body><div id="zoneTitre">Le titre</div><div id="zoneCentre">

<div id="zoneMenu">Le menu</div></div>

$('div#nom').html( '<p>nouveau titre</p>' );

� Utilisation de div et de span en conjonction du CSS pour l’affichage

div#nom{float:left;width: 150px; }

Page 48: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

48

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

le Web 2.0

� Le Web 2.0 a pour but de simplifier les interfaces utilisateurs avec des fonctions notamment javascript avancées et le DOM en évitant l’effet rechargement de la page

� L’utilisation appropriée des URL (Url rewriting)� Les nuages de tags, cheminement

Page 49: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

49

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Ajax 1/2

� Asynchronous Javascript et Xml

Etape1: afficher la page html originelle

Etape 4: javascript modifie le Dom selon le fichier Xml

Page 50: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

50

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Ajax 2/2

$.ajax({url:"http://www.truc.com/getHorloge.php",success: function( result ){

$("#horloge").html( result.find("now").innerText );}

});

XML

ou JSON

Page 51: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

51

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

AngularJS

� Partie Vueng-appng-controllerng-repeatng-model{{ }}

� Partie Contrôleur

� Partie Model

Page 52: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

52

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Développement Web

� Chapitre 4: � Les technologies Java� L’approche par Jsp� L’approche par Servlet� Rappel sur la base de données� Automate à état� Le Design Pattern MVC� La couche contrôleur� La couche modèle� La couche vue� La machine à états doit est lisible� Chaine de production d’application web

Page 53: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

53

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Les technologies Java 1/2

� Eclipse� Outil de développement ou IDE pour Java ou

d’autres langages� Logiciel opensource complet pouvant comporter

des extensions et des modules� Tomcat

� Serveur Web prévu pour développer en Java� Permet d’exécuter des applications Web écrite en

HTML, JSP, Servlet

Page 54: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

54

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Les technologies Java 2/2

� Jsp� Document HTML comportant des parties de code

java ou tags spécifiques� Une Jsp est transformé en Servlet par Tomcat

� Servlet� Servlet s’exécute sur le serveur Web Tomcat et

restitue une page HTML/CSS/Javascript � Applet

� Application qui s’exécute dans le navigateur de l’utilisateur

Page 55: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

55

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

L’approche par Jsp

<html><head><title>ma première jsp</title></head><body><h1>Bonjour <%=request.getParameter("nom")%>

</h1></html>

Page 56: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

56

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

L’approche par Servlet

import java.io.*;import javax.servlet.*;import javax.servlet.http.*;

public class HelloWorldExample extends HttpServlet {public void doGet(HttpServletRequest request,

HttpServletResponse response)throws IOException, ServletException{

response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<html><head>");out.println("<title>première servlet</title></head>");out.println("<body><h1>bonjour");out.println( request.getParameter("nom"));out.println("</h1></body>");out.println("</html>");

}}

Page 57: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

57

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Rappel sur la base de données 1/2

� Un Système de Gestion de Base de Données (SGBD) permet le stockage de grosses quantités d'informations structurées

� Extraction d'informations à partir de tables où sont structurées et stockées les données

� Interrogation en SQL (Search and Querying Language) "proche" du langage naturel

� Une table contient des données typées et structurées en colonnes (les champs) et en lignes (les enregistrements)

� Un ensemble de tables sont regroupées dans un "schéma" de base de données

Page 58: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

58

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Rappel sur la base de données 2/2

INSERT INTO Conducteur (Numero de Permis,Nom du Conducteur) VALUE('12RT1','Jean');

UPDATE Conducteur SET 'Nom Du Conducteur'='Jean P.' WHERE "Nom Du Conducteur" = "Jean" AND "Numero de Permis"="12RT1";

SELECT 'Nom du Conducteur' FROM 'Conducteur' WHERE "Nom Du Conducteur" = "Jean" AND "Numero de Permis"="12RT1";

DELETE 'Conducteur' WHERE "Nom Du Conducteur" = "Jean" AND "Numero de Permis"="12RT1";

Page 59: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

59

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Automates à état

vue=PageLogin.jsp

action=DemandeLogin

PageLogin.jsp

vueAfficher=PageLogin.jsp

1/Servlet extrait

les données

2/Invalidation

par la couche

métier

3/Appel de la

JSP

PageLogin.jsp

Quel est l’automate à Etat correspondant ?

Page 60: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

60

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Le Design Pattern MVC

� Un site dynamique doit respecter le paradigme Modèle-Vue-Controleur

� Une forme d’extension de l'architecture 3 tiers (architecture physique)

� Une architecture logique provenant d'une réflexion aboutie dans l'ingénierie logicielle

� Pour faire simple, la division du programmes en morceaux chacun spécialisé dans un objectif

Page 61: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

61

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

La couche contrôleur

� Contrôle des échanges entre la couche Modèle et la couche Vue

� Représentation sous formes de graphes d'états finis� Validation des échanges et des transitions d’un état

vers un nouvel état� Mis à mal par les évènements Ajax qui arrivent de

manière asynchrone

Page 62: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

62

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

La couche modèle

� Appelé aussi partie Métier car en relation directe avec le métier des utilisateurs de l'application ( banque, assurance )

� Notion par exemple d'objet Compte Banquaire, Sinitres, etc

� Dans nos exemples inclus la base de données� Peut s'étendre à des applications spécifiques sur de

très gros systèmes� Une représentation UML par diagramme de classe

sert pour la conception de la partie modèle� Une application classique sans aucun interface mais

avec des tests unitaires est souvent conçue pour cette couche

Page 63: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

63

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

La couche vue

� Partie graphique et intelligence graphique� Présentation de l'informations et interactions avec

l'utilisateur de l'application� Contrôle de validité des informations rentrées� Messages d'erreurs� Adaptable facilement en fonction des terminaux� La partie doit être pensée pour l’internationalisation

des interfaces

Page 64: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

64

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

La machine à états doit être lisible

String action = request.getParameter("action");

if ("ajouterTodo".equals(action)) {String texte = request.getParameter("todo_texte");Application.getInstance().addTodo(texte, false);

vueAfficher = "liste_todos.jsp";}

if ("effacerTodo".equals(action)) {String idTodo = request.getParameter("todo_id");Application.getInstance().deleteTodo( idTodo );

vueAfficher = "liste_todos.jsp";}

return vueAfficher;

Page 65: Architecture et Développement Web - pierrejean.wp.imt.fr · Vérifier systématiquement que vous utilisez Eclipse pour Java EE et Tomcat que nous allons installer ... Exemple avec

65

Arc

hite

ctur

e et

Dév

elop

pem

ent

WE

B-

Pie

rre.

jean

@ e

ma.

fr

Chaine de production d’application web

� Phase d’analyse de la couche métier en UML � Génération du code avec annotation de la couche

de persistance� Génération de la base de données à partir des

annotation� Création des tests unitaires avant production du

code spécifiques� Création du diagramme d’état pour l’enchainement

des pages� Maquette de la charte graphique du site en Css� Génération des interfaces graphiques simplifiés