TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.



Documents pareils
Web Tier : déploiement de servlets

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

JavaServer Pages (JSP)

Application Web et J2EE

Architecture Orientée Service, JSON et API REST

Mise en œuvre des serveurs d application

4. SERVICES WEB REST 46

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Devenez un véritable développeur web en 3 mois!

1. Installation d'un serveur d'application JBoss:

Compte Rendu d intégration d application

Utilisation de Jakarta Tomcat

Module BD et sites WEB

JOnAS Day 5.1. Outils de développements

Cours en ligne Développement Java pour le web

Les architectures 3-tiers Partie I : les applications WEB

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Applications et Services WEB: Architecture REST

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Auto-évaluation Aperçu de l architecture Java EE

Application web de gestion de comptes en banques

Développement des Systèmes d Information

Programmation Web. Madalina Croitoru IUT Montpellier

Introduction à la plateforme J2EE

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Projet Java EE Approfondi

Refonte front-office / back-office - Architecture & Conception -

les techniques d'extraction, les formulaires et intégration dans un site WEB

Java pour le Web. Cours Java - F. Michel

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Environnements de Développement

10. Base de données et Web. OlivierCuré

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

A. Architecture du serveur Tomcat 6

Groupe Eyrolles, 2005, ISBN :

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Le développement d applications Web

Formation en Logiciels Libres. Fiche d inscription

Architectures Web Services RESTful

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

2 Chapitre 1 Introduction

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Alfstore workflow framework Spécification technique

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

SITE WEB E-COMMERCE ET VENTE A DISTANCE

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Un serveur d'archivage

Introduction aux «Services Web»

Messagerie asynchrone et Services Web

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

JOnAS 5. Serveur d application d

Catalogue des Formations Techniques

IBM DB2 Alphablox. d administration GC

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

TP JAVASCRIPT OMI4 TP5 SRC

Le passage à l échelle de serveur J2EE : le cas des EJB

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Point sur les solutions de développement d apps pour les périphériques mobiles

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

CQP Développeur Nouvelles Technologies (DNT)

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

F O R M A T I O N CATALOGUE

Hébergement de sites Web

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

La base de données XML exist. A. Belaïd

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Java Naming and Directory Interface

Bien architecturer une application REST

Jahia CMS ET Portal Version 5.0

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

Expert technique J2EE

Attaques applicatives

Une introduction à la technologie EJB (2/3)

L3 informatique TP n o 2 : Les applications réseau

Livre Blanc WebSphere Transcoding Publisher

TP1 : Initiation à Java et Eclipse

- Rapport de stage Étude de solutions pour l intégration de fonctionnalités

Petite définition : Présentation :

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Transcription:

ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture multi-niveau avec Java EE Ce premier niveau d application est consitué de deux éléments clé : Les JSP (JavaServer Pages) sont des fichiers qui peuvent mélanger Java, HTML et JavaScript. Ces fichiers ont pour but de présenter les données au client. Une JSP est un fichier qui sera transformé en Servlet puis compilé par le conteneur de Servlets. Les Servlets sont de simple classes Java qui héritent de la classe HttpServlet et doivent implémenter deux méthodes : dopost(...), doget(...). Ces deux méthodes répondent aux deux opérations principales du protocole HTTP : GET et POST. Sans ce TP, nous allons créer notre première application JEE. Le but de ce TP est de créer un petit projet Web permettant de créer un contact, de l afficher, puis, de le modifier. Pour cela, nous allons créer deux fichier JSP responsables de l affichage d un contact et de son édition (ViewContact.jsp et EditContact.jsp). Chacune de ces JSP communiquera avec une classe Java qui aura le rôle de contrôleur : le Servlet (ContactServlet.java). Table des matières 1 Création du projet avec Maven 2 2 La partie présentation 2 2.1 Web statique............................... 2 2.2 Les JSP (Java Server Pages)....................... 2 1

3 Contrôleurs, Servlets 4 3.1 Les Servlets................................ 4 3.2 Communication entre une Servlet et une JSP............. 5 4 Culture Java EE 7 1 Création du projet avec Maven Récupérer le projet squelette 1. Rendez vous dans le projet (vide) ContactWeb (skull). 2. Générez un projet Eclipse et ouvrez-le. 3. Déployez le projet sur Tomcat et testez la servlet HelloWorld. 2 La partie présentation 2.1 Web statique Création d un fichier HTML/ JavaScript 1. Ajoutez un fichier HTML (index.html) dans le dossier src/main/webapp. Editezle afin d afficher une image de votre choix, ainsi qu un lien nommé Ajouter Contact vers l url./editcontact.jsp Figure 2 Lien entre index.html et la JSP EditContact que l on créera plus tard. 2. Ajoutez du code Javascript pour afficher la date du jour. 3. Re-déployez un nouveau WAR de votre application vers Tomcat. 4. Visitez la page HTML que vous venez de créer avec votre navigateur. 2.2 Les JSP (Java Server Pages) Les JSP (Java Server Pages) correspondent à la partie vue (web) d une application JEE. Ces pages sont dynamiques et peuvent contenir du code Java. Les JSP sont converties en classes Java par le conteneur de Servlets (par exemple Tomcat). 2

Il existe plusieurs solutions pour écrire du code Java dans une JSP. Basiquement, il suffit de le placer entre les balises <% et %>. On parle de scriptlet. Pour évaluer une expression (variable Java par exemple) il faut par contre utiliser la balise<%=. <%@ page language=" java " contenttype=" t e x t /html ; c h a r s e t=iso 8859 1" pageencoding="iso 8859 1"%> <%@ page import=" java. u t i l. L i s t " %> <%@ page import=" java. u t i l. ArrayList " %>... <% List<Integer> entiers = new ArrayList<Integer >() ; entiers. add ( 1 ) ; entiers. add ( 2 ) ; entiers. add ( 3 ) ; f o r ( Integer i : entiers ) { %> <p>numero : <%= i %></p> <% } %> Figure 3 Utlisation de code java dans une page JSP. Une première JSP 1. Créez un nouveau fichier JSP dans /src/main/webapp : TestJSP.jsp. 2. En vous inspirant du code source 3, créez une liste de chaînes de caractères dans un premier temps, puis affichez leurs valeurs. 3. Dans une JSP, comment utiliser les conditions (if, else,...)? 4. Re-déployez et testez dans votre navigateur. La JSP EditContact 1. Créez un nouveau fichier JSP dans /src/main/webapp que l on appellera Edit- Contact.jsp. 2. Modifiez cette JSP afin qu elle affiche un formulaire permettant d insérer un nom, un numéro de téléphone, et une date de naissance. 3. Modifiez la JSP pour que le champ date de naissance soit par défaut égal à la date du jour (utilisez Javascript). 4. Testez dans votre navigateur. 5. Remplacez le code Javascript par du code Java. 6. Quelle est la différence entre le code Java et le code Javascript? 3

3 Contrôleurs, Servlets Une servlet est une classe Java qui permet de créer dynamiquement des données au sein d un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l être au format XML, ou tout autre format destiné aux navigateurs web. Les servlets utilisent l API Java Servlet (package javax.servlet). Une servlet s exécute dynamiquement sur le serveur web et permet l extension des fonctions de ce dernier, typiquement : accès à des bases de données, transactions d ecommerce, etc. Une servlet peut être chargée automatiquement lors du démarrage du serveur web ou lors de la première requête du client. Une fois chargées, les servlets restent actives dans l attente d autres requêtes du client. L utilisation de servlets se fait par le biais d un conteneur de servlets côté serveur. Celui-ci constitue l environnement d exécution de la servlet et lui permet de persister entre les requêtes des clients. L API définit les relations entre le conteneur et la servlet. Le conteneur reçoit la requête du client, et sélectionne la servlet qui aura à la traiter. Le conteneur fournit également tout un ensemble de services standards pour simplifier la gestion des requêtes et des sessions. 3.1 Les Servlets Grâce à éclipse créer une nouvelle servlet 1. En vous inspirant de la classe HelloWorld, ajoutez une nouvelle servlet au projet : ContactServlet. 2. À quoi sert l annotation @WebServlet, les méthodes doget et dopost. 3. Le protocole HTTP définit 4 types d opérations : GET, POST, DELETE, PUT. Quel est l utilité de PUT et DELETE? Comment les implémenter avec une Servlet? Test de la nouvelle servlet Un objet de type PrintWriter peut être récupéré depuis l objet response afin d écrire des chaînes de caractères dans la réponse d une servlet. 1. Créez une classe Contact (name, email, phone, birthday). 2. Modifiez la méthode doget(...) afin d afficher les informations d une instance d un étudiant. 3. Testez votre toute nouvelle Servlet. 4

3.2 Communication entre une Servlet et une JSP Transférer la requête vers une JSP Il est possible, grâce à l objet RequestDispatcher accessible via la méthode request.getrequestdispatcher de l objet request, de transférer la requête et la réponse de la servlet vers une JSP. 1. Modifiez la méthode doget afin de rediriger l utilisateur vers la JSP EditContact. Figure 4 Transfert de la requête doget vers la JSP EditContact 2. Testez. 3. Modifiez la méthode dopost afin de récupérer les paramètres du formulaire. On pourra utiliser la méthode getparameter de l objet request. 4. Il est possible de passer des paramètres à une JSP en utilisant la méthode request.setattribute(string e, Object o) ;. Avec e le nom du paramètre et o sa valeur. Puis, du coté JSP on pourra récupérer ce paramètre en utilisant la méthode request.getattribute(string e). Utilisez ces méthodes afin d afficher le contact créé par la méthode dopost(...) dans une nouvelle JSP ViewContact.jsp. Figure 5 Suite d appels JSP et Servlet afin d ajouter un contact 5

5. Tester. Les JavaBeans Les JavaBeans (à ne pas confondre avec les Enterprise JavaBeans, EJB, que nous verrons plus tard) sont de simples classes Java mais qui sont écrites en suivant une spécification bien particulière : Elle doivent implémenter l interface Serializable. Chaque attribut doit avoir un getter et un setter de la forme getxxx et setxxx où xxx est le nom de l attribut. Par exemple, l attribut name doit avoir un setter setname(string name) et un getter String getname(). 1. Modifiez la classe Contact afin qu elle soit conforme à la spécification Java- Beans. Il est possible d utiliser des JavaBeans dans les JSP grâce aux tags jsp :usebean, jsp :setproperty et jsp :getproperty. <jsp : usebean id="contact" class="iut. jee. Contact" scope="request "> <jsp : setproperty name="contact" property=" " /> </jsp : usebean> <form action ="./ viewcontact" method="post"> <input type="text" value="${ contact. name }" name="name" /> <input type="text" value="${ contact. email }" name="email" /> </form> 1. En vous inspirant du code précédent, modifiez la JSP EditContact afin d utiliser le composant JavaBean Contact. Testez. 2. À quoi sert l attribut scope de la balise jsp :usebean? 3. À quoi sert la balise jsp :setproperty? Il est possible d ajouter des variables en session. On peut récupérer cette session depuis l objet request et la méthode getsession. Une fois la session obtenue on peut utiliser la méthode putvalue pour y ajouter des variables, ou la méthode getvalue pour récupérer des informations. 1. Modifiez la JSP ViewContact.jsp pour que, en plus d afficher un contact, elle propose un lien pour le modifier. 6

Figure 6 Modifier un contact depuis ViewContact 2. Utilisez la session pour afficher les informations du contact à éditer dans la JSP EditContact.jsp. 4 Culture Java EE 1. Qu est-ce qu un conteneur de servlet? Citez un exemple. 2. Qu est-ce qu un fichier WAR? 3. Qu est-ce que le fichier web.xml? À quoi sert-il? Pourquoi n en n avons nous pas besoin dans ce TP? 4. Quelle est la différence entre une JSP et une Servlet? 5. Qu est-ce qu un JavaBean? 6. Quels sont les attributs accessibles en Java depuis une JSP? 7. À quoi sert la session HTTP? 8. Qu est-ce que Struts et Spring MVC? 9. Quelle est la différence entre MVC et MVC2? Quels sont les avantages et inconvénients de l un par rapport à l autre? 10. La question troll : Java vs PHP? et Ruby On Rails? 7