Syntaxe JSP. B. Mermet



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.

Programmation Web. Madalina Croitoru IUT Montpellier

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

JavaServer Pages (JSP)

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)

Introduction à MATLAB R

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Compte Rendu d intégration d application

Plan du cours. Historique du langage Nouveautés de Java 7

Programmer en JAVA. par Tama

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

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

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

Environnements informatiques

PHP 5.4 Développez un site web dynamique et interactif

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

Application web de gestion de comptes en banques

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

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

Web Tier : déploiement de servlets

Le stockage local de données en HTML5

Module BD et sites WEB

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Introduction au langage C

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

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 DataBaseConnectivity

Serveur d Applications Web : WebObjects

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Notes de cours : bases de données distribuées et repliquées

//////////////////////////////////////////////////////////////////// Administration bases de données

Cours en ligne Développement Java pour le web

PHP 5. La base de données MySql. A. Belaïd 1

TP 1. Prise en main du langage Python

Mise en œuvre des serveurs d application

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Documentation CAS à destination des éditeurs

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

Aspects techniques : guide d interfaçage SSO

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

Conventions d écriture et outils de mise au point

Présentation du PL/SQL

PROSOP : un système de gestion de bases de données prosopographiques

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

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

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

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

Programme awk------introduction rapide

DOM - Document Object Model

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Projet Java EE Approfondi

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

Programmation en Java IUT GEII (MC-II1) 1

Vulnérabilités et sécurisation des applications Web

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

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

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

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Sage CRM. Sage CRM 7.3 Guide du portable


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

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Hébergement de site web Damien Nouvel

Java Licence Professionnelle CISII,

Configurer la supervision pour une base MS SQL Server Viadéis Services

TP JAVASCRIPT OMI4 TP5 SRC

Formation : WEbMaster

Application Web et J2EE

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)

TP1. Outils Java Eléments de correction

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Création d objet imbriqué sous PowerShell.

Google AdWords : le Guide complet Optimisez vos campagnes pour gagner plus!

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

AGRÉGATION «ÉCONOMIE ET GESTION»

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

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

as Architecture des Systèmes d Information

.NET - Classe de Log

Algorithmique et Programmation, IMA

Le développement d applications Web

Chapitre 5 : Les procédures stockées PL/SQL

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

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

Pratique et administration des systèmes

TP Contraintes - Triggers

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Recherche dans un tableau

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

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

FileMaker Server 13. Publication Web personnalisée avec PHP

Mysql. Les requêtes préparées Prepared statements

Transcription:

Syntaxe JSP B. Mermet

Préambule 2 syntaxes possibles Syntaxe "JSP" Syntaxe "XML" Choix fait : on ne présente que la syntaxe JSP

Syntaxe de base Scriptlet (code de base) Syntaxe : <%... %> ou <jsp:scriptlet>...</jsp:scriptlet> Utilisation : code java inséré dans la méthode service() Commentaires Syntaxe : <%--... --%> Utilisation : commentaire de code non renvoyé Déclaration Syntaxe : <%!... %> Utilisation : tout code or de la méthode service() Expression Syntaxe : <%=... %> ou <jsp:expression>...</jsp:expression> Utilisation : affichage de la valeur d'une expression java

Directive page Syntaxe Syntaxe : <%@ page directive="valeur" %> Directives possibles language="java" : une seule valeur possible pour le moment extends="package.class" : classe mère de la jsp ; usage à limiter import="package" ou import ="listepackage" Par défaut : java.lang.*, javax.servlet.*, javax.servlet.jsp.*, javax.servlet.http.* session="true false" : si une session est requise pour utiliser la page buffer="none 8kb sizekb" autoflush="true false" isthreadsafe="true false" : si false, SingleThreadModel utilisé info="text" errorpage="relativeurl" : url de la page d'erreur vers laquelle aller contenttype="mimetype [ ; charset=characterset ]" Par défault : "text/html ; charset=iso-8859-1" ] iserrorpage="true false" : s'agit-il d'une page d'erreur (objet exception) pageencoding="characterset ISO-8859-1" iselignored="true false" : valeur par défaut dépend version

Quelques autres directives Inclusion statique Syntaxe : <%@ include file="urlrelative" %> <jsp:directive.include file="urlrelative" /> Principe Le fichier est inclus avant la compilation Fichier peut être du html, du texte, une jsp, du source java Utilisation de bibliothèques de balises Syntaxe Principe <%@ taglib {uri="uri" tagdir="/web-inf/tags[/subdir]+"} prefix="tagprefix" %> Voir section sur les balises personnalisées

Syntaxe du Langage d'expression JSP ${Expression} Expression = {(ChoiceExpression (Expression BinaryOp Expression) (UnaryOp Expression) Value } ChoiceExpression = Expression? Expression : Expression BinaryOp (JSP syntax) = and && or '+' '-' * / did % mod > gt < lt >= ge <= le == eq!= ne BinaryOp (XML syntax) = and && or '+' '-' * / div % mod gt lt ge le == eq ne UnaryOp = {'-'! not empty } Value = {ValuePrefix (Value ValueSuffix) } ValuePrefix = {Literal '('Expression')' ImplicitObject Java language identifier FuncInvocation } ValueSuffix = {. Identifier '['Expression']'} FuncInvocation = [Identifier :]Identifier '('[Expression [',' Expression]+ ]')' Literal = booléen nombre chaine null

EL (suite) Utilisation Dans le texte Dans les paramètres des balises Intérêt Faciliter notamment l'accès aux propriétés des beans (voir partie sur les beans) Utilisation d'une variable dans EL Recherche de l'attribut dans page, requête, session, application Notations "." Et [] : synonymes : a.b <=> a[b] Utilisations : tableaux, "maps" et beans Quelques objets implicites : pagecontext.[servletcontext session request response] Param, paramvalues, header, headervalues, cookie, initparam Pour aller plus loin http://java.sun.com/products/jsp/syntax/2.0/syntaxref207.html#1010522

Utilisation des beans Syntaxe simpifiée <jsp:usebean id="nominstance" scope="page request session application" class="paquetage.class" /> <jsp:usebean id="nominstance" scope="page request session application" class="paquetage.class">... </jsp:usebean> Principe Si le bean existe, sa référence est récupérée dans la variable nominstance. Sinon, il est créé, sa réf. est stockée dans la variable nominstance, et les éventuelles actions incluses dans la balise (syntaxe 2) sont exécutées. Actions éventuelles (syntaxe 2) Des "setproperty"

Manipulation des beans Balise setproperty Syntaxe : <jsp:setproperty name="nominstance" property="*" /> <jsp:setproperty name="nominstance" property="nomprop" param="nomparam" /> <jsp:setproperty name="nominstance" property="nomprop" value="{chaine '${' Expression '}' <%= expression %>} /> Balise getproperty Syntaxe : <jsp:getproperty name="nominstance" property="nomprop" /> Autres utilisations Dans le code java via une variable nominstance Dans les expressions EL

Jeu de balise JSTL core (1) Syntaxe standard <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Balise URL <c:url var="nomvar" scope="portée" value="url" context="contexte/> <c:url var="nomvar" scope="portée" value="url" context="contexte> <c:param name="nomparam" value="valeur"/>... </c:url> Représentation des URL : Absolues : protocole://adresse Relatives à l'application : /adresse Relative à la page : adresse

Jeu de balise JSTL core (2) Balise foreach Itération sur : Un tableau Une collection Une énumération Un itérateur Syntaxe simplifiée <c:foreach var="variable" items="liste">...</c:foreach> Paramètres supplémentaires begin : indice du premier élément parcouru end : indice du dernier élément parcouru step : intervalle entre 2 éléments Rmq : utiliser begin et end sans items permet une boucle for

Jeu de balise JSTL core (3) Balise fortokens Découpage d'une chaîne de caractères Syntaxe simplifiée <c:fortokens var="mot" items="chaine" delims="sep">... </c:fortokens> Paramètres supplémentaires begin : indice du premier mot parcouru end : indice du dernier mot parcouru step : intervalle entre 2 mots considérés

Jeu de balise JSTL core (4) Balise if Traitement conditionnel Syntaxe simplifiée <c:if test="letest" var="resultat" scope="portée">... </c:if> Remarques : Seul le paramètre "test" est obligatoire La portée par défaut est "page"

Jeu de balise JSTL core (5) Balise choose Equivalent du "case" de Java Syntaxe simplifiée <c:choose> <c:when test="letest">...</c:when> <c:when test="letest">...</c:when>... <c:otherwise>...</c:otherwise> </c:choose> Remarque : Les traitements des branches ne sont pas enchaînés comme avec le case (break automatique)

Jeu de balise JSTL core (6) Balise catch Ignorer/stocker les exceptions générées dans le bloc encadré Syntaxe simplifiée <c:catch var="variable">... </c:catch> Balise remove Supprime une variable Syntaxe : <c:remove var = "variable" scope="portée"/>

Jeu de balise JSTL core (7) Balise set Stocke le résultat d'un calcul dans une variable ou dans une propriété d'un bean Syntaxe simplifiée : <c:set var="variable" value="valeur" scope="portée"/> <c:set target="bean" property="prop" value="valeur"/> Balise redirect Envoie un ordre de re-direction au client avec ou sans paramètre Syntaxe : <c:redirect url="cible"/> ou <c: redirect url="cible">... </c:redirect>

Jeu de balise JSTL core (8) Balise import Récupération du contenu d'une autre page (pouvant être externe à l'application) Syntaxes possibles <c:import url="adresse"/> <c:import url="page" context="appli"/> <c:import url="adresse"> params </c:import> <c:import url="adresse" var="variable"/> <c:import url="adresse" varreader="nomflux">lecture</c:import> Paramètres supplémentaires scope charencoding Rmq : si varreader, l'url doit contenir dès le départ ses paramètres

Autres packages de jstl fmt (formatage, préfixe usuel : fmt) Gère l'internationalisation (langue, fuseau horaire) Interpréation des chaînes pour dates, nombres, Affichage formaté d'une date, d'un nombre sql (SQL!, préfixe usuel : sql) Définition de la connexion à la base Exécution de requêtes (interrogation et modification) éventuellement paramétrées et de transactions xml (XML!, préfixe usuel : x) Lecture de documents XML functions (fonctions EL, préfix usuel : fn) Rajouts de fonctions sur les chaînes de caractères à EL