MVC / Les Tags JSP et JSTL



Documents pareils
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.

JavaServer Pages (JSP)

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

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)

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

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

Cours en ligne Développement Java pour le web

Application Web et J2EE

Architecture Orientée Service, JSON et API REST

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

Projet Java EE Approfondi

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

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

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

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

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

Serveur d Applications Web : WebObjects

Compte Rendu d intégration d application

Web Tier : déploiement de servlets

Module BD et sites WEB

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

Java DataBaseConnectivity

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Développement des Systèmes d Information

Formation en Logiciels Libres. Fiche d inscription

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

Tutoriel d installation de Hibernate avec Eclipse

W4 - Workflow La base des applications agiles

Catalogue des Formations Techniques

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

CQP Développeur Nouvelles Technologies (DNT)

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Java pour le Web. Cours Java - F. Michel

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

Un serveur d'archivage

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

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

Alfstore workflow framework Spécification technique

Programmation Web. Madalina Croitoru IUT Montpellier

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

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

Mise en œuvre des serveurs d application

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

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

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

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

Catalogue des Formations

Server-side XML. PAS FINI... mais ok pour un début. Originaux. Auteurs et version. Prérequis: Java de base, servlets, GUI et XML

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

TP1. Outils Java Eléments de correction

Programmation Internet Cours 4

Oracle Maximum Availability Architecture

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

Outil de Demande de Backup Système

DEVELOPPEMENT WEB & PROGRAMMATION

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

Messagerie asynchrone et Services Web

La fédération d identités, pourquoi et comment? Olivier Salaün, RENATER ANF Mathrice 2014

Application web de gestion de comptes en banques

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Diplôme Universitaire Technologique Spécialité Informatique. Période du stage: 05 Avril Juin 2004

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

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

Programme ASI Développeur

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

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

BIRT (Business Intelligence and Reporting Tools)

BES WEBDEVELOPER ACTIVITÉ RÔLE

Ociensa Technologies.

Introduction à la plateforme J2EE

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

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

JOnAS Day 5.1. Outils de développements

IBM DB2 Alphablox. d administration GC

Utilisation de Jakarta Tomcat

Environnements informatiques

Applications orientées données

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

4. Groupement d objets

RÉF : 2002/COFAX/LP V1.0

PHP 5.4 Développez un site web dynamique et interactif

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

2 Chapitre 1 Introduction

Aspects techniques : guide d interfaçage SSO

Rapport de stage de fin d études

Best Practices : Utilisation des APIs de Lotus Web Content Management

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Webmaster / Webdesigner / Wordpress

Hébergement de sites Web

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Java 1.5 : principales nouveautés

Formation : WEbMaster

Transcription:

MVC / Les Tags JSP et JSTL A.-E. Ben Salem LRDE and LIP6 17 Octobre 2011 1 / 18

Plan 1 Architecture MVC 2 Rappel JSP 3 JSTL (JSP Standard Tag Library) 4 Tags JSP pour gérer les Beans 5 Tags JSP d action 2 / 18

Architecture MVC http://www.javaskool.com 3 / 18 Model View Controller (Modèle-vue-contrôleur) Séparation entre: Le Controleur: Servlet qui aiguille les requête La Vue: pages JSP pour l affichage Le Modèle: les classes ( Java Beans ) qui traitent les données

Rappel JSP Une JSP mélange deux types de code: code HTML (partie statique) code Java (partie dynamique): exécuté coté serveur transformée dynamiquement en Servlet interaction avec des Java Beans. Une JSP est constituée : de tags HTML de scriptlets : code Java de tags JSP : transformés en code Java 4 / 18

Scriplets Du code Java : <% code Java %> Des évaluations d expression : <%= expression %> Des variables prédéfinies 5 / 18

La JSTL (JSP Standard Tag Library) JSTL Bibliohèques de balises (tags libraries) 6 / 18

La JSTL (JSP Standard Tag Library) JSTL (JSP Standard Tag Library): Bibliothèques de tags (en plus des tags de base <jsp:... > ) Exemples de tags JSTL: Tag d itération <c:foreach> Tag conditionelle <c:if> Exécution de requête SQL <sql:query>,... Format <fmt:formatdate>,... But: ne manipuler qu un langage de balises dans les pages JSP Téléchargement à l URL (JSTL 1.1): http://tomcat.apache.org/taglibs/standard/ La documentation de la JSTL 1.1: http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/ 7 / 18

Les 4 bibliothèques de tags de la JSTL La JSTL est composée de 4 bibliothèques de tags : Bibliothèque Prèfixe Exemples de tags URI core <c:... > <c:foreach>, http://java.sun.com/jsp/jstl/core <c:if>, <c:out>, <c:choose>,... SQL <sql:... > <sql:query>, http://java.sun.com/jsp/jstl/sql <sql:update>,... Format <fmt:... > <fmt:formatnumber>, <fmt:parsenumber>,... http://java.sun.com/jsp/jstl/fmt XML <x:... > <x:parse>, <x:transform>,... http://java.sun.com/jsp/jstl/xml 8 / 18

Bibliothèque JSTL: core Bibliothèque JSTL core: Bibliothèque des tags fournissant les fonctions de base Pour utiliser JSTL core, il faut la déclarer dans la JSP: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> Les principales balises de la bibliothèque core associée au préfixe c sont : c:out, c:catch, c:if, c:foreach : <c:out value="expression" /> est équivalent à : <%= expression %> 9 / 18

Bibliothèque JSTL core: Tag <c:if> Tag <c:if test=... ">: c est le si(condition) en JSTL permet de réaliser un test conditionnel l attribut test permet de décrire la condition Exemple: <c:if test="${empty person.name}"> Inconnu </p> est équivalent à : <% if(person.getname() == null) { %> <p>inconnu </p> <% } %> 10 / 18

Bibliothèque JSTL core: Tag <c:foreach> Tag <c:foreach var=... items=... >: permet de parcourir les différents éléments d une collection l attribut items = la collection à parcourir (scope: page, request, session,... ) l attribut var = nom de la variable qui contient l élément en cours <c:foreach var="person" items="${listperson}"> <tr> <td>${person.name}</td> <td>${person.age}</td> </tr> </c:foreach> est équivalent à : <% for (Iterator it = listperson.iterator(); it.hasnext();) { out.println("<tr> ); Person person = (Person) it.next(); out.println("<td>" + person.getname() + "</td>"); out.println("<td>" + person.getage() + "</td>"); out.println("</tr> ); } %> 11 / 18

Bibliothèque JSTL core: Tag <c:catch> Tag <c:catch var="... ">: permet de capturer des exceptions l attribut var = nom de la variable qui va contenir l exception <c:catch var="erreur" /> actions à surveiller </c:catch> <c:if test="${not empty erreur}"> <c:out value="${erreur.message}"/> </c:if> est équivalent à : <% try { actions á surveiller } catch (Throwable erreur) { out.println(erreur.getmessage()); }%> 12 / 18

Tags JSP pour gérer les Beans http://www.javaskool.com 13 / 18 Tag <jsp:usebean>: <jsp:usebean id="nombean" scope="portée" class="classe"/>

Tags JSP pour gérer les Beans http://www.javaskool.com 13 / 18 Tag <jsp:usebean>: <jsp:usebean id="nombean" scope="portée" class="classe"/> Exemple: <jsp:usebean id="person" class="person" scope="session/> est équivalent à : <% Person person = (Person) session.getattribute("person"); if (person == null) { person = new Person(); session.setattribute("person", person); } %>

Tag <jsp:setproperty> <jsp:setproperty name="nombean" property="nomattribut"/> Le tag <jsp:setproperty> s utilise en complément de <jsp:usebean> permet de mettre à jour la valeur d un attribut d un Bean à partir d un paramètre de la requête. il utilise le setter de l attribut dans le Bean (méthode setxxx(... ) où XXX est le nom de l attribut avec la première lettre en majuscule) Exemple: <jsp:usebean id="person" class="person" scope="session/> <jsp:setproperty name="person" property="name" /> est équivalent à : <jsp:usebean id="person" class="person" scope="session/> <% if (request.getparameter("name")!= null) person.setname(request.getparameter("name")); %> 14 / 18

Tag <jsp:getproperty> <jsp:getproperty name="nombean" property="nomattribut"/> Le tag <jsp:getproperty> permet d afficher un attribut d un Bean, il utilise le getter de l attribut (méthode getxxx() où xxx est le nom de l attribut avec la première lettre en majuscule) Exemple: <jsp:usebean id="person" class="person" scope="session/> <jsp:getproperty name="person" property="name" /> est équivalent à : <jsp:usebean id="person" class="person" scope="session/> <%=person.getname() %> 15 / 18

l attribut scope du tag <jsp:usebean> <jsp:usebean id="nombean" class="class" scope="page"/> L attribut scope permet de définir la portée durant laquelle le bean est défini et utilisable La valeur de cet attribut détermine la manière dont le tag localise ou instancie le bean Les valeurs possibles du scope sont : page : Le bean est utilisable dans toute la page JSP (valeur par défaut). request : le bean est accessible durant la durée de vie de la requête. La méthode getattribute() de l objet request permet d obtenir une référence sur le bean. session : Le bean est utilisable tout au long de la session utilisateur. La JSP qui créé le bean doit avoir l attribut session = «true» dans sa directive page. application : le bean est utilisable par toutes les JSP de la même application. Le bean n est instancié que lors du rechargement de l application. 16 / 18

Tags d action: <jsp:forward> et <jsp:include> <jsp:forward page= page.jsp"> permet de rediriger la requête vers une autre URL (ressource HTML, JSP ou Servlet) Cette URL est relative à la JSP courante Si l URL commence par un /, elle est absolue Dès que le moteur de JSP rencontre ce tag, il ignore le reste de la JSP courante il est possible de passer des paramètres vers la ressource appelée grâce au tag <jsp:param... /> <jsp:include page= page.jsp"> permet d inclure le contenu généré par une autre JSP ou Servlet inclusion dynamique au moment où la JSP est exécutée. passage de paramètres: <jsp:param... /> 17 / 18

Tags de directives <%@... %> Les directives permettent de préciser des informations globales sur la page JSP Syntaxe : <%@ directive attribut="valeur"... %> 3 directives possibles: page : informations relatives à la page (langage et import): <%@ page import="java.util.*" %> include : inclure des fichiers statiques dans la JSP avant la génération de la Servlet, <%@ include file="chemin relatif du fichier" %> taglib : permet de définir des tags personnalisés 18 / 18