1 / 77

Applications Web avec Java

Applications Web avec Java. AgroParisTech : Module 2A. Duke. Sommaire. Les différents types d'applications Les applications Web Présentation de Tomcat Utilisation d’Eclipse Servlets & JSP Structurer une application Web Base de données et serveurs d'applications

danil
Download Presentation

Applications Web avec Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Applications Web avec Java AgroParisTech : Module 2A Duke

  2. Sommaire • Les différents types d'applications • Les applications Web • Présentation de Tomcat • Utilisation d’Eclipse • Servlets & JSP • Structurer une application Web • Base de données et serveurs d'applications • Déployer son application Web Applications Web en Java

  3. Sommaire • Les différents types d'applications • Les applications Web • Présentation de Tomcat • Utilisation d’Eclipse • Servlets & JSP • Structurer une application Web • Base de données et serveurs d'applications • Déployer son application Web Applications Web en Java

  4. Les différents types d’applis • Applications autonomes Données Exécutable Applications Web en Java

  5. Les différents types d’applis • Applications déportées Données Gestionnaired'écrans Terminal ouémulateur Applications Web en Java

  6. Les différents types d’applis • Applications client/serveur Données Exécutable Applications Web en Java

  7. Les différents types d’applis • Applications client/serveur distribuées ou 3-tiers Données Exécutable Exécutable Applications Web en Java

  8. Les différents types d’applis • Les applications client léger ou applications web Données NavigateurHTML/Javascript Serveurd'applications Applications Web en Java

  9. AWT Swing SWT Applications Java • Java permet de réaliser tous les types d'applications • Mais les interfaces utilisateur développées en Java sont relativement peu performantes • Par contre, Java est très adapté pour réaliser des applications Web : • développer sous Windows, déployer sous UNIX • richesse des programmes et API disponibles • peu d’impacts sur les performances Applications Web en Java

  10. Sommaire • Les différents types d'applications • Les applications Web • Présentation de Tomcat • Utilisation d’Eclipse • Structurer d'une application Web • Base de données et serveurs d'applications • Déployer son application Web Applications Web en Java

  11. Historique du Web • Le Web à l'origine : • permet d'accéder à des pages d'informations reliées par des liens hypertextes • nécessite uniquement la présence d'un navigateur Web sur le poste de l'utilisateur • permet de générer des pages dynamiquement pour des applications spécifiques et limitées (ex : moteur de recherche) Applications Web en Java

  12. Outils du web à l’origine • Editeurs de pages HTML/Javascript : • Microsoft FrontPage • Macromédia DreamWeaver • NVU • Transfert de pages : • FTP • webdav FTP WebDav Applications Web en Java

  13. Evolution du Web • Développement des pages dynamiques : • générées à partir d'une base de données : pas besoin d'écrire des centaines de pages HTML (ex : site de presse) • apportent un contenu personnalisé à l'utilisateur (ex : Mon Yahoo!) • ne nécessitent pas d'installation sur le poste de l'utilisateur(ex : annuaire de l'école) HTML Applications Web en Java

  14. Technologies du web dynamique • 3 solutions : • ASP (.Net) : • Active Server Page • fonctionne uniquement avec un serveur MS Windows • PHP : • PHP Hypertext Processor • gratuit : communauté libre • fonctionne avec tout type de serveur • simple à apprendre • limité (mais nouvelles versions…) ASP PHP Applications Web en Java

  15. Technologies du web dynamique • 3 solutions : • Java : Servlets/JSP : • gratuit , mais sous la houlette de Sun • fonctionne avec tout type de serveur • programmation objet structurée, modulaire et évolutive • richesse des interfaces • répandu dans les entreprises • peu d’hébergements disponibles servlet JSP Applications Web en Java

  16. Web dynamique : principes Formulaire :- champs de saisie - bouton de validation Applications Web en Java

  17. Web dynamique : principes Transmission des données du formulaire Réponse à la demande Applications Web en Java

  18. 1 : le navigateur rassemble les informations du formulaire, il se connecte au serveur et lui transmet ces informations dans une requête HTTP 4 : le navigateur affiche la page et rompt la connexion 3 : le serveur génère dynamiquement une page avec le résultat, l'envoie en réponse HTTP au navigateur Web dynamique : principes 2 : le serveur accepte la connexion reçoit la requête, retrouve les informations transmises et recherche les données correspondantes Applications Web en Java

  19. Web dynamique : session • Le dialogue entre le navigateur et le serveur est déconnecté : 1 : le navigateur se connecte au serveur Web 2 : le navigateur envoie une requête 3 : le serveur renvoie une réponse 4 : la connexion est rompue ! • Comment assurer le « suivi de l'utilisateur » (ex : webmail, panier dans un site de commerce) ? Applications Web en Java

  20. 1 : le navigateur rassemble les informations du formulaire, il se connecte au serveur et lui transmet ces informations dans une requête HTTP 3 : le serveur génère dynamiquement une page avec le résultat, l'envoie en réponse HTTP au navigateur, accompagnée du cookie. 4 : Le navigateur garde le cookie et affiche la page 5 : lors de la requête suivante, le navigateur retransmet le cookie au serveur, qui saura ainsi identifier l'utilisateur... 3 : le serveur génère une page en fonction de l'utilisateur identifié par son cookie 5 : etc. Alfred Gérard Web dynamique : cookies 2 : le serveur accepte la connexion reçoit la requête, retrouve les informations transmises et recherche les données correspondantes.Il génère également un cookie et garde en mémoire les informations associées Applications Web en Java

  21. Les applications Web en Java • Serveur web capable d'exécuter du Java : • serveur d'application J2EE • web container J2EE • Un serveur J2EE est capable d'exécuter : • des servlets : classes Java exécutées côté serveur • des JSP : • Java Server Pages • Fichiers de script qui « mélangent » du Java et du HTML/Javascript J2EE Applications Web en Java

  22. Sommaire • Les différents types d'applications • Les applications Web • Présentation de Tomcat • Utilisation d’Eclipse • Structurer d'une application Web • Base de données et serveurs d'applications • Déployer son application Web Applications Web en Java

  23. Tomcat • Un « conteneur web » (web container) J2EE • Implémentation Java de référence • Serveur open-source gratuit et multi-plateformes (écrit en Java) Applications Web en Java

  24. Tomcat installation • Prérequis : • nécessite un Software Development Kit • JDK : Java Development Kit http://www.oracle.com/technetwork/java/javase/downloads/index.html • Eclipse Europa pour développement J2EEhttp://www.eclipse.org/downloads/moreinfo/jee.php • Tomcathttp://jakarta.apache.org/tomcat Applications Web en Java

  25. Tomcat : organisation générale Exécutables Classes Java communes à toutes les applications Fichiers de configuration Fichiers de logs (messages d'erreurs…) Emplacement par défaut des applications Applications Web en Java

  26. Tomcat / eclipse • Création d'un serveur Tomcat sous eclipse • Fichier/Nouveau/Autres • Serveur/Serveur, Next • Apache/Tomcat 5.5 Server, Finish Applications Web en Java

  27. Tomcat : démarrage/arrêt Applications Web en Java

  28. Tomcat : bon fonctionnement • http://localhost:8080 Applications Web en Java

  29. Sommaire • Les différents types d'applications • Les applications Web • Présentation de Tomcat • Utilisation d’Eclipse • Servlets & JSP • Structurer une application Web • Base de données et serveurs d'applications • Déployer son application Web Applications Web en Java

  30. Créer une Application Web • Dans Eclipse : • Menu File > New > Project… • Sélectionner Web > Dynamic Web Project • Project name : TestTomcat • Target runtime : Apache tomcat V5.5 • finish Applications Web en Java

  31. Arborescence d'une application Applications Web en Java

  32. TP1 • Démarrer Tomcat sur le poste de travail • Tester le bon fonctionnement de l'application • Créer un projet TestTomcat • Créer une servlet, via les menus d’Eclipse, selon les indications données par l’enseignant Applications Web en Java

  33. Sommaire • Les différents types d'applications • Les applications Web • Présentation de Tomcat • Utilisation d’Eclipse • Servlets & JSP • Structurer une application Web • Base de données et serveurs d'applications • Déployer son application Web Applications Web en Java

  34. Servlet : création • Une servlet est une classe dérivée de javax.servlet.http.HttpServlet. On la trouve dans l'arborescence WEB-INF/src • Cette classe définit (surtout) 4 méthodes : • init(ServletConfig) • doGet(HttpServletRequest, HttpServletResponse) • doPost(HttpServletRequest, HttpServletResponse) • destroy() Applications Web en Java

  35. Servlet : méthodes • init(ServletConfig) exécutée au chargement de la servlet • doGet(HttpServletRequest, HttpServletResponse) exécutée à chaque connexion d'un navigateur • doPost(HttpServletRequest, HttpServletResponse) exécutée à chaque validation de formulaire • destroy() exécutée lors de l'arrêt du serveur Applications Web en Java

  36. Servlet : paramètres • Paramètre HttpServletRequest : • encapsule la requête HTTP issue du navigateur • permet d'accéder aux valeurs du formulaire :String nom = request.getParameter( "nom"); • Paramètre HttpServletResponse : • encapsule la réponse renvoyée au navigateur • permet de générer par exemple du HTML :PrintWriter out = response.getWriter();out.println("…");out.close(); Applications Web en Java

  37. Servlet : exemple simple publicclassSimpleServletextendsHttpServlet{ publicvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>Bonjour !</h1>"); out.println("</html>"); out.println("</body>"); out.close(); } } http://localhost:8080/TestTomcat/servlet/SimpleServlet Applications Web en Java

  38. Servlet : avec un formulaire • Mentionner la servlet comme action dans le formulaire HTML : <form name="Formulaire" method="post" action="servlet/FormulaireServlet"> Entrez votre nom : <input type="text" name="nom"> <input type="submit" value="valider"> </form> http://localhost:8080/TestTomcat/Formulaire.html Applications Web en Java

  39. Servlet : réponse au formulaire • La servlet récupère le nom et génère une page avec : publicvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse) throwsServletException,IOException{ Stringnom=request.getParameter("nom"); response.setContentType("text/html"); PrintWriterout=response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>Bonjour "+nom+" !</h1>"); out.println("</html>"); out.println("</body>"); out.close(); } Applications Web en Java

  40. Servlet : récapitulatif formulaire 1 : le navigateur rassemble les informations du formulaire, il se connecte au serveur et lui transmet ces informations dans une requête HTTP Formulaire.html Servlet/FormulaireServlet 2 : le serveur génère dynamiquement une page avec le résultat, l'envoie en réponse HTTP au navigateur Applications Web en Java

  41. Servlet : GET ou POST ? • Attribut method de la balise form • GET : correspond à l'appel d'une page par le navigateur (barre d'adresse ou lien)Transmet les paramètres dans l'URL : http://localhost:8080/servlet/test?param=value • POST : plus adapté au transfert de données depuis un formulaire • Une servlet peut déterminer ainsi si elle est appelée comme validation d'un formulaire ou non Method POST Method GET Applications Web en Java

  42. Servlet : formulaire et traitement publicvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse) throwsServletException,IOException{ // Méthode GET : barre d'adresse response.setContentType("text/html");PrintWriterout=response.getWriter(); out.println("<html>"); out.println("<html>"); out.println("<form name=\"Formulaire\" method=\"post\" action=\"FormulaireServletDeuxEnUn\">"); out.println("Entrez votre nom :"); out.println("<input type=\"text\" name=\"nom\">"); out.println("<input type=\"submit\" value=\"valider\">"); out.println("</form>"); out.println("</html>"); out.println("</body>"); out.close(); } Applications Web en Java

  43. Servlet : formulaire et traitement publicvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse) throwsServletException,IOException{ // Méthode POST : validation du formulaire response.setContentType("text/html"); PrintWriterout=response.getWriter(); out.println("<html>"); out.println("<body>"); Stringnom=request.getParameter("nom"); out.println("<h1>Bonjour "+nom+" !</h1>"); out.println("</html>"); out.println("</body>"); out.close(); } Applications Web en Java

  44. 1 : appel de la servlet via la barre d'adresse : méthode GET 2 : renvoi du formulaire 3 : appel de la servlet via le bouton de validation : méthode POST 4 : renvoi du résultat Servlet : récap formulaire/traitement Applications Web en Java

  45. TP2 • Dans le projet TestTomcat, développer une servlet qui demande un nombre à l'utilisateur et renvoie le calcul de la factorielle de ce nombre Applications Web en Java

  46. Servlet : session • L'objet requête passée en paramètre permet de fixer/retrouver des objets pour une session utilisateur • L'objet session est une collection d'objets associés à des clés Applications Web en Java

  47. HttpSession import javax.servlet.http.HttpSession; … HttpSession session = request.getSession(); … MaClasse monObjet = (MaClasse)session.getAttribute("nom"); … session.setAttribute("nom", monObjet); Applications Web en Java

  48. Servlet : exemple session publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(); ArrayListlisteCourse=(ArrayList)session.getAttribute("listeCourse"); if(listeCourse==null){ // La liste des courses de l'utilisateur n'a pas ete créée session.setAttribute("listeCourse",newArrayList()); } //... } Applications Web en Java

  49. TP3 • Ecrire une servlet qui initialise une somme à 0 et demande un nombre via un formulaire • Ce nombre est ajouté à la somme renvoyée à l'utilisateur, auquel on demande aussi un nouveau nombre (affichage du résultat précédent et du formulaire sur la page) • Le nouveau nombre vient s'ajouter à la somme • Et ainsi de suite... Applications Web en Java

  50. Les JSP • Inconvénients des servlets : • générer du code HTML est fastidieux (plusieurs lignes de out.println("") • impossible d'utiliser les outils WYSIWYG HTML (Frontpage, Dreamweaver…) pour concevoir la partie présentation des pages • Une solution : les Java Server Pages ! JSP Applications Web en Java

More Related