exposé système informatique et réseau présentation de jsp et comparaison à php exposé de...
TRANSCRIPT
Exposé SystèmeInformatique et RéseauPrésentation de JSP et comparaison à PHP
Exposé de Système - Informatique et Réseau
Cédric Jourdan – IR5
PLAN
Introduction
JSP
PHP
Lequel choisir entre JSP et PHP
INTRODUCTION
Les sites Internet sont de plus en plus riches
Interaction avec l’utilisateur
Connexions avec des Bases de données et d’autres applications
Langage script côté serveur
JSP - (Java Server Pages)
Présentation
Exécution
JSP Présentation
Standard Java permettant de développer des Applications Web interactives
Intégrable au sein d’une page HTML
Langage script exécuté du côté serveur
Répartition des tâches de développement
JSP Présentation - Modèle
Demande de fichier JSP
JSP Présentation – Syntaxe (1)
Exemple de code dans une page HTML<html>
<body>
<% String visitor = request.getParameter("name");
if (visitor == null) visitor = " World"; %>
Hello, <%= visitor %>!
</body>
</html>
Affichage “Hello, World !” pour une requête http://serveur.fr/helloScript.jsp
“Hello, Java !” pour une requête http://serveur.fr/helloScript.jsp?name=Java
JSP Présentation – Syntaxe (2)
Les Balises: 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…)
JSP Présentation - Implémentation
Séparation de la présentation et de l’implémentation
ImplantationPrésentation
Balises des JSP HTMLet style HTML
Composants JavaServlets
Java BeanClasses …
BalisesJSP
personnalisées
JSP 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 …
JSP 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
JVM
Servelet HelloWord
Requête
Serveur
Client(Navigateur)
GET http://www/servlets/HelloWordApplication Web
<HTML>….<HelloWord></b></body></html>
Réponse
Conteneur de Servlets
API Java “javax.servlet” et “javax.servlet.http”
JSP Exécution - Fonctionnement
Envoie de la réponse
Compile la servlet JSP
Charge la servlet
Serveur HTTP
Servlet de page JSP
Servelet du compilateur de page
Génère la réponse
Analyse les JSP
Génère le source de la servelet
Servelet JSP courante?
Servelet JSP chargée?
Réception de la requête
Oui
Oui
Non
Non
Conteneur de JSP
JSP 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= Jourdan&Prenom= Cedric
JSP 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 l’utilise.- 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
ServeurHTTP
JVM
ConteneurJSP Prog.jsp
Nom=Jourdan&Prenom=Cedric
2
JSP Exécution – Fonctionnement (Étape 3&4)
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
ServeurHTTP
JVM
ConteneurJSP
Prog.jspRéponse HTML
3
Serveur Web
Client(Navigateur)
4
Réponse HTML
JSP Exécution – Mise en cache des sorties
Fonctionnement HTTP
Le client (Navigateur)
1) réception de l’en-tête HTTP
2) réception du corps de la réponse
Le Serveur
1) envoie de l’en-tête HTTP
(informations, cookies…)
2) émission de la page HTML
JSP Exécution – Mise en cache des sorties (2)
Problème du protocole HTTP avec JSP- Envoie de l’en-tête HTTP avant d’avoir traité le code JSP
- On ne peut pas par exemple gérer les cookies avec JSP, car ils sont envoyés dans l’en-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 l’en-tête HTTP
- Par défaut la mémoire tampon est de 8Ko
- Un tampon par Servelet
Caractéristiques du cache
PHP – (Personal Home Page)
Langage script interprété du cote serveur
Intégrable au sein d’une page HTML
Simplicité d’écriture des scripts
PHP - Exécution
Serveur HTTP
Envoie de la requête
Génération de la réponse
Processus PHPActivation du processus
PHP
Réception de la requête PHP
Réception des sorties PHP
JSP ou PHP?
JSP PHPUtilise le langage Java qui est
totalement objet Langage procédurale avec la possibilité
de faire de l’objet
Grand nombre d’API 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 d’un module pour supporter le “out process”
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 l’exécution des scripts
Programmes portables Problèmes de portabilités
JSP ou PHP? – Le meilleur choix
JSP demande une plus grande complexité d’apprentissage que PHP
JSP est plus oriente pour s’interfacer sur de gros applicatifs comme les systèmes d’informations
PHP est plus adapté à de petits applicatifs, qui demandent peux de développement
FIN
Bibliographie
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