Servlets et Jsp avec Tomcat et Eclipse F

  • Slides: 13
Download presentation
Servlets et Jsp avec Tomcat et Eclipse F. Pfister (francois. pfister@ema. fr)

Servlets et Jsp avec Tomcat et Eclipse F. Pfister (francois. pfister@ema. fr)

Plan n n Introduction: Serveur web, HTML Cycle d’un Serveur HTTP Pourquoi des documents

Plan n n Introduction: Serveur web, HTML Cycle d’un Serveur HTTP Pourquoi des documents dynamiques ? Avantages d’une servlet java Servlet et jsp Une servlet simple Une Jsp simple Java côté serveur Tomcat Paramétrage d’une application web Démarrer avec les jsp 2 IUP MIC 2005

Introduction: Serveur web, HTML n n L’utilisateur tape une URL dans son navigateur web

Introduction: Serveur web, HTML n n L’utilisateur tape une URL dans son navigateur web Le navigateur envoie une requête au serveur Le serveur retourne un document au navigateur Le navigateur traduit (renders) ce document Si le document est un document HTML, on peut en voir le source (menu Afficher la source) n Quelques éléments HTML de base: q q HREF TABLE voir http: //wp. netscape. com/assist/net_sites/table_sample. html q FORM Voir tutoriels HTML sur le web. 3 IUP MIC 2005

Cycle d’un Serveur HTTP n n n Lire les méta-données envoyées par le client

Cycle d’un Serveur HTTP n n n Lire les méta-données envoyées par le client : en-têtes (headers) de requête Lire les données explicites envoyées par le client (données de formulaire GET ou POST) Générer le résultat (en interrogeant éventuellement d’autres serveurs: bases de données, Ejb, etc…) Envoyer les méta-données au client: codes de statut et entêtes (headers) de réponse Envoyer les données explicites au client (HTML) 4 IUP MIC 2005

Pourquoi des documents dynamiques ? n La page web est basée sur des données

Pourquoi des documents dynamiques ? n La page web est basée sur des données émises par le client q q n La page web est basée sur des données qui changent fréquemment q n Par exemple, une page de résultat pour un moteur de recherche ou une confirmation de commande une page de catalogue d’un site marchand Exemple: site météo, site de news Les pages web utilisent l’information fournie par une base de données ou un autre serveur de données q Exemple: un site de commerce électronique utilise une servlet pour établir une liste des articles disponibles avec leur prix et leur quantité 5 IUP MIC 2005

Avantages d’une servlet java n Efficace q n Pratique q n S’exécute sur tous

Avantages d’une servlet java n Efficace q n Pratique q n S’exécute sur tous les OS et tous les serveurs Sûre q n Partage de données, pools d’objets Portable q n Existence d’une bibliothèque d’utilitaires très riche Puissante q n Une servlet est un thread java (léger) et non un processus (lourd) de l’OS. C’est une instance unique, qui reste chargée en mémoire. Pas d’appels au shell, pas de débordements de mémoire Economique q Il existe de nombreux serveurs gratuits ou peu chers 6 IUP MIC 2005

Servlet et jsp n n n Une Jsp (Java Server Page) est un document

Servlet et jsp n n n Une Jsp (Java Server Page) est un document html traité par le serveur. Une Jsp est un document HTML comportant des parties de code supplémentaires (code java, ou tags spécifiques) Le résultat de ce traitement est une Servlet Cette Servlet délivre (en général) du code HTML pur au client Contrairement à une applet, ce n’est pas le navigateur client qui exécute le code java inclus dans la JSP ou la Servlet, mais le serveur 7 IUP MIC 2005

Une servlet simple import java. io. *; import javax. servlet. http. *; public class

Une servlet simple import java. io. *; import javax. servlet. http. *; public class Hello. World. Example extends Http. Servlet { public void do. Get(Http. Servlet. Request request, Http. Servlet. Response response) throws IOException, Servlet. Exception{ response. set. Content. Type("text/html"); Print. Writer out = response. get. Writer(); out. println("<html>"); out. println("<head>"); out. println("<title>première servlet</title>"); out. println("</head>"); out. println("<body>"); out. println( « <h 1>bonjour</h 1>"); out. println("</body>"); out. println("</html>"); } } 8 IUP MIC 2005

Une Jsp simple <html> <head><title>ma première jsp</title></head> <body> <h 1> Bonjour <% out. println(request.

Une Jsp simple <html> <head><title>ma première jsp</title></head> <body> <h 1> Bonjour <% out. println(request. get. Parameter("nom"). to. String()); %> </h 1> </html> 9 IUP MIC 2005

Java côté serveur Points clés n ASP (Microsoft) et PHP sont des technologies semblables

Java côté serveur Points clés n ASP (Microsoft) et PHP sont des technologies semblables aux Servlets/JSP. n Java. Script est une technologie côté client, développée à l’origine par Netscape. n L’applet Java est une technologie côté client, développée par Sun. 10 IUP MIC 2005

Tomcat n n Tomcat est un serveur Jsp-Servlet très populaire. Il est couplé avec

Tomcat n n Tomcat est un serveur Jsp-Servlet très populaire. Il est couplé avec Eclipse au travers d’un plug-in, le débogage des jsp est possible. Les jsp sont recompilées automatiquement par Tomcat en cas de modification. Les servlets et autres classes Java sont rechargées à chaud en cas de modification, il n’est pas nécessaire de redémarrer le serveur. 11 IUP MIC 2005

Paramétrage d’une application web Une application web doit être paramétrée dans le cas des

Paramétrage d’une application web Une application web doit être paramétrée dans le cas des servlets, par un fichier web. xml: <web-app > <servlet-name>helloservlet</servlet-name> <servlet-class>test. servlet. Hello. World. Example</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloservlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> 12 IUP MIC 2005

Démarrer avec les jsp Quelques directives de base n scriptlet <% // ici code

Démarrer avec les jsp Quelques directives de base n scriptlet <% // ici code java %> n expression <%= une. Personne. get. Nom() %> Est équivalent de: <% out. println(une. Personne. get. Nom() ) %> n import d’une classe <%@ page import = "exo 2. Personne" %> n Inclusion d’un fichier <%@ include file = "un. Autre. html" %> n Déclaration et instanciation d’un objet <jsp: use. Bean id="une. Personne" class="exo 2. Personne"/> Est équivalent de <% exo 2. Personne une. Personne = new exo 2. Personne(); %> Cette directive, de plus , affecte l’objet au contexte de page (voir cours suivant) 13 IUP MIC 2005