Title: Expos
1Exposé de Système - Informatique et Réseau
Présentation de JSP et comparaison à PHP
Exposé Système Informatique et Réseau
Cédric Jourdan IR5
2PLAN
- Introduction
- JSP
- PHP
- Lequel choisir entre JSP et PHP
3INTRODUCTION
- Les sites Internet sont de plus en plus riches
- Interaction avec lutilisateur
- Connexions avec des Bases de données et dautres
applications - Langage script côté serveur
4JSP - (Java Server Pages)
5JSP Présentation
- Standard Java permettant de développer des
Applications Web interactives - Intégrable au sein dune page HTML
- Langage script exécuté du côté serveur
- Répartition des tâches de développement
6JSP Présentation - Modèle
7JSP Présentation Syntaxe (1)
- Exemple de code dans une page HTML
lthtmlgt ltbodygt lt String visitor
request.getParameter("name") if (visitor
null) visitor " World" gt Hello, lt
visitor gt! lt/bodygt lt/htmlgt
- Affichage
- Hello, World ! pour une requête
http//serveur.fr/helloScript.jsp - Hello, Java ! pour une requête
http//serveur.fr/helloScript.jsp?nameJava
8JSP Présentation Syntaxe (2)
- Les Directives
- Pour transmettre au conteneur de JSP des
informations de traitement spécifiques à une
page - Les éléments scripts
- Code JAVA compilé par le serveur Web
- Les Commentaires
- Pour ajouter du texte explicatif à une page JSP
- Les actions
- Elles permettent de réaliser plusieurs
comportements différents (appel Applet, Servlet,
JavaBean)
9JSP Présentation - Implémentation
- Séparation de la présentation et de
limplémentation
10JSP Exécution - Conditions
- Serveur Web HTTP (Apache, Netscape Enterprise
Server ) - Conteneur de JSP (Tomcat )
- JDK (Java Development Kit) contient un Java
Runtime Environment (machine virtuelle), un
compilateur
11JSP Exécution - Servlets
- Programme exécuté sur le serveur Web
- Peut recevoir et émettre des requêtes HTTP
- Les JSP sont transformées en Servlet
Application Web
GET http//www/servlets/HelloWord
Conteneur de Servlets
Servelet HelloWord
Requête
Réponse
JVM
Client (Navigateur)
ltHTMLgt.ltHelloWordgtlt/bgtlt/bodygtlt/htmlgt
Serveur
- API Java javax.servlet et
javax.servlet.http
12JSP Exécution - Fonctionnement
Serveur HTTP
Réception de la requête
Conteneur de JSP
Servelet du compilateur de page
Servelet JSP courante?
Non
Oui
Servelet JSP chargée?
Oui
Non
Servlet de page JSP
Envoie de la réponse
13JSP Exécution Fonctionnement (Étape 1)
- client ? serveur moteur
- 2 façons
- - le client charge une URL http// www.
univ-mlv. fr/ prog. Jsp - le navigateur construit une commande HTTP GET
GET /prog. jsp HTTP/ 1.1
- - le client saisit des informations dans un
formulaire et clique sur envoi - le navigateur construit une commande HTTP POST
- avec les données du formulaire (chaîne de
caractères)
POST /prog. jsp HTTP/ 1.1 Nom JourdanPrenom
Cedric
14JSP Exécution Fonctionnement (Étape 2)
- serveur moteur ? JSP
- Le "moteur"
- - à la 1ère invocation, crée une classe, la
compile et l' instancie. - Si la classe existe déjà, et elles aussi
récente que la page HTML, on lutilise. - - crée un thread
- - invoque une méthode de la classe contenant le
code à exécuter
La JSP - s'exécute sur le serveur Web
Prog.jsp
Serveur HTTP
Conteneur JSP
NomJourdanPrenomCedric
2
JVM
15JSP Exécution Fonctionnement (Étape 34)
- 1) JSP ? serveur moteur
- La JSP
- - produit son résultat
- 2) Serveur moteur ? Client
- Le serveur
- - propage le résultat au client
- dans une réponse HTTP
Prog.jsp
Réponse HTML
Serveur HTTP
Réponse HTML
Conteneur JSP
3
4
JVM
Client (Navigateur)
Serveur Web
16JSP Exécution Mise en cache des sorties
- Le client (Navigateur)
- 1) réception de len-tête HTTP
- 2) réception du corps de la réponse
- Le Serveur
- 1) envoie de len-tête HTTP
- (informations, cookies)
- 2) émission de la page HTML
17JSP Exécution Mise en cache des sorties (2)
- Problème du protocole HTTP avec JSP
- Envoie de len-tête HTTP avant davoir traité le
code JSP - On ne peut pas par exemple gérer les cookies
avec JSP, car ils sont envoyés dans len-tête
- Solution apportée par JSP
- Mise en cache des résultats du traitement des
pages JSP - On envoie la réponse au client une fois le code
Java traite - On peut ainsi modifier len-tête HTTP
- Caractéristiques du cache
- Par défaut la mémoire tampon est de 8Ko
- Un tampon par Servelet
18PHP (Personal Home Page)
- Langage script interprété du cote serveur
- Intégrable au sein dune page HTML
- Simplicité décriture des scripts
19PHP - Exécution
Serveur HTTP
Réception de la requête PHP
Processus PHP
Envoie de la requête
20JSP ou PHP?
JSP PHP
Utilise le langage Java qui est totalement objet Langage procédurale avec la possibilité de faire de lobjet
Grand nombre dAPI Moins de possibilités de développement
Peut ce connecter à tout type de bases de données (avec JDBC) Peut ce connecter à tout type de bases de données (avec ODBC)
Fonctionne in process et out process Ajout dun module pour supporter le out process
Les temps de réponses sont équivalents Les temps de réponses sont équivalents
Plus gourmand en ressources à cause de la JVM Langage interprète à chaque appel
Processus léger, utilise les Threads Nouveaux processus pour lexécution des scripts
Programmes portables Problèmes de portabilités
21JSP ou PHP? Le meilleur choix
- JSP demande une plus grande complexité
dapprentissage que PHP - JSP est plus oriente pour sinterfacer sur de
gros applicatifs comme les systèmes
dinformations - PHP est plus adapté à de petits applicatifs, qui
demandent peux de développement
22FIN
- Livre JSP JavaServer Pages, Duane K. FIELDS,
Mark A. KOLB, édition Eyrolles. - java.sun.com/jsp/
- www.php.net
- www.commentcamarche.net
- http//deneau.multimania.com/ - Veille
Technologique - JAVA ET INTERNET, G. ROUSSEL, E. DURIS, édition
Vuibert