130 likes | 303 Views
Servlets et Jsp avec Tomcat et Eclipse. F.Pfister (francois.pfister@ema.fr). Plan. 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
E N D
Servlets et Jsp avec Tomcat et Eclipse F.Pfister (francois.pfister@ema.fr)
Plan • 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
Introduction: Serveur web, HTML • 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) • Quelques éléments HTML de base: • HREF • TABLE voir http://wp.netscape.com/assist/net_sites/table_sample.html • FORM Voir tutoriels HTML sur le web.
Cycle d’un Serveur HTTP • 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 en-têtes (headers) de réponse • Envoyer les données explicites au client (HTML)
Pourquoi des documents dynamiques ? • La page web est basée sur des données émises par le client • 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 • La page web est basée sur des données qui changent fréquemment • 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 • Exemple: un site de commerce électronique utilise une servlet pour établir une liste des articles disponibles avec leur prix et leur quantité
Avantages d’une servlet java • Efficace • 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. • Pratique • Existence d’une bibliothèque d’utilitaires très riche • Puissante • Partage de données, pools d’objets • Portable • S’exécute sur tous les OS et tous les serveurs • Sûre • Pas d’appels au shell, pas de débordements de mémoire • Economique • Il existe de nombreux serveurs gratuits ou peu chers
Servlet et jsp • 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
Une servlet simple import java.io.*; import javax.servlet.*; import javax.servlet.http.*; publicclass HelloWorldExample extends HttpServlet { publicvoid doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>première servlet</title>"); out.println("</head>"); out.println("<body>"); out.println(« <h1>bonjour</h1>"); out.println("</body>"); out.println("</html>"); } }
Une Jsp simple <html> <head><title>ma première jsp</title></head> <body> <h1> Bonjour <%out.println(request.getParameter("nom").toString());%> </h1> </html>
Java côté serveur Points clés • ASP (Microsoft) et PHP sont des technologies semblables aux Servlets/JSP. • JavaScript est une technologie côté client, développée à l’origine par Netscape. • L’applet Java est une technologie côté client, développée par Sun.
Tomcat • 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.
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> <servlet-name>helloservlet</servlet-name> <servlet-class>test.servlet.HelloWorldExample</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloservlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
Démarrer avec les jsp Quelques directives de base • scriptlet <% // ici code java %> • expression <%= unePersonne.getNom() %> Est équivalent de: <% out.println(unePersonne.getNom() ) %> • import d’une classe <%@ page import = "exo2.Personne" %> • Inclusion d’un fichier <%@ include file = "unAutre.html" %> • Déclaration et instanciation d’un objet <jsp:useBean id="unePersonne" class="exo2.Personne"/> Est équivalent de <% exo2.Personne unePersonne = new exo2.Personne(); %> Cette directive, de plus , affecte l’objet au contexte de page (voir cours suivant)