Technologie JSP version 2.1

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)

Web Tier : déploiement de servlets

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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

Application Web et J2EE

Projet Java EE Approfondi

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

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

Alfstore workflow framework Spécification technique

Programmer en JAVA. par Tama

TP1. Outils Java Eléments de correction

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

Projet de programmation (IK3) : TP n 1 Correction

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

Le développement d applications Web

Une introduction à Java

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

Applet pour visualiser les variables «automate» notifiées

Programmation en Java IUT GEII (MC-II1) 1

Application web de gestion de comptes en banques

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

TP1 : Initiation à Java et Eclipse

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

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

Initiation à JAVA et à la programmation objet.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

as Architecture des Systèmes d Information

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Messagerie asynchrone et Services Web

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

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

Chapitre VI- La validation de la composition.

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)

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Plateforme PAYZEN. Définition de Web-services

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

Premiers Pas en Programmation Objet : les Classes et les Objets

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

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

Héritage presque multiple en Java (1/2)

Cours 1: Java et les objets

Java Licence Professionnelle CISII,

2 Chapitre 1 Introduction

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

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

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)

Compte Rendu d intégration d application

INITIATION AU LANGAGE JAVA

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

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

Bases Java - Eclipse / Netbeans

Création d un service web avec NetBeans 5.5 et SJAS 9

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Programmation par composants (1/3) Programmation par composants (2/3)

Développement des Systèmes d Information

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Génie Logiciel avec Ada. 4 février 2013

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

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

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

Objets et Programmation. origine des langages orientés-objet

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

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

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Création d objet imbriqué sous PowerShell.

Java DataBaseConnectivity

RÉALISATION D UN SITE DE RENCONTRE

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Serveur d Applications Web : WebObjects

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Application de lecture de carte SESAM-Vitale Jeebop

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

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)

Introduction à JDBC. Accès aux bases de données en Java

SYSTÈMES D INFORMATIONS

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Langage Java. Classe de première SI

Auto-évaluation Programmation en Java

Définition des Webservices Ordre de paiement par . Version 1.0

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

Utilisation de Jakarta Tomcat

Mise en œuvre des serveurs d application

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

Best Practices : Utilisation des APIs de Lotus Web Content Management

Composants Logiciels. Le modèle de composant de CORBA. Plan

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

Une introduction à la technologie EJB (2/3)

Programmation Par Objets

Cours d Algorithmique et de Langage C v 3.0

Transcription:

Technologie JSP version 2.1

Algorithme d exécution d une servlet

Composants d une page JSP Deux styles d écriture de page jsp Style standard Style XML Types de blocs dans une page JSP Directives Scripts Actions Commentaires: une page jsp peut contenir des commentaires html ou des commentaires jsp <! commentaire html > <% commentaire jsp %>

Directives Une directive fournit au conteneur des informations sur la manière dont il doit traiter la page jsp. Directives page include tag taglib

Directive page Styles Style standard: <% @page «attributs»%> Style XML: <jsp:directive.page «attributs»/> Attributs import : import de packages session : précise si la page prend en considération les variables session ou non (par défaut =false) errorpage: url de la page à afficher une exception est levée. iserrorpage: précise si c est une page d erreur (par défaut=false) contenttype pageencoding extends: définit la classe parente qui doit être de type javax.servlet.genericservlet Exemple: Style standard: <%@ page errorpage="/web INF/errorPage.jsp" import="java.util.iterator,jsp.exemple1.categories" %> Style xml: <jsp:directive.page errorpage="/web INF/errorPage.jsp" import="java.util.iterator,jsp.exemple1.categories" />

Directive include Inclure un fichier Style standard: <%@ include file=" cheminrelatif " %> Style xml: <jsp:directive.include file="cheminrelatif" /> Exemple <%@ include file="/web INF/footer.jspf" %>

Directive tag Similaire à la directive page mais s applique aux fichiers de tags. Syntaxe: Style standard <%@ tag attributs%> Style xml <jsp:directive.tag attributs />

Les scripts 3 types de scripts jsp Déclarations Scriptlets Expressions

Déclarations Ce type de bloc est utilisé pour déclarer des variables (qui peuvent aussi être initialisées) et pour définir des méthodes. Syntaxe: Style standard: <%! déclarations %> Style XML: <jsp:declaration>déclarations</jsp:declaration>. Exemple: <%! Categories themes = new Categories(); %> <jsp:declaration>categories themes = new Categories(); </jsp:declaration> Exemple 2: <%! int entier() { return (int) (Math.random() * 100); } %> Remarque: Une variable ou une méthode déclarée dans ce bloc devient un membre d instance dans la classe qui implémente la page jsp. Les déclarations Seront insérées comme des membres de la servlet Ce type de bloc permet de définir des méthodes ou des données membres

Scriptlets Ce type de bloc contient des instructions Java Syntaxe: Style standard: <% code %> Style XML: <jsp:scriptlet>code </jsp:scriptlet> Exemple 1: <% for (int i = 1; i < 10; i++) { %> Bonjour, Monde! <% } %> Exemple 2 String[] langages = {"Java", "C++", "Smalltalk", "Simula"}; out.println("<h3>principaux langages orientés objets : </h3>"); for (int i=0; i < langages.length; i++) { out.println("<p>" + langages[i] + "</p>"); } Remarque Les variables déclarées dans ce type de bloc ont une portée locale. Les méthodes ne peuvent pas être définies dans ce type de bloc. inséré dans _jspservice() de la servlet, donc peut utiliser out, request, response, etc.

Expressions Une expression est utilisée pour généré une valeur Syntaxe: Style standard: <%= expression %> Style XML: <jsp:expression>expression</jsp:expression> Exemple: Style standard: <%= remplacerunderscore(categorie) %> Style XML: <jsp:expression> remplacerunderscore(categorie) </jsp:expression>

Les actions Les actions sont des balises qui sont utilisées dans une page jsp pour exécuter certaines actions La spécification jsp définit un certain nombre d actions dites actions standards.

<jsp:usebean> <jsp:setproperty> <jsp:getproperty> <jsp:param> <jsp:include> <jsp:forward> <jsp:plugin> <jsp:params> Actions standards

Action usebean Localisation ou instanciation d un JavaBean Un JavaBean est une classe qui respecte les contraintes suivantes La classe ne doit pas avoir des constructeurs avec argument Pour chaque attribut qui doit être accessible au client du JavaBean on doit créer les accesseurs get et ou set. Le nom des accesseurs possède le format suivant: public type getnomattribut { return nomattribut;} public Boolean isnomattribut { return nomattribut;} public void setnomattribut( type val){nomattribut=val;}

Action usebean Syntaxe: <jsp:usebean «attributs»> Attributs id:nom de la variable qui référence l instance du bean scope: définit la portée du bean, valeurs possibles: page (par défaut), request, session ou application class: nom complètement qualifié de la classe du bean type: le type à utiliser pour l instance qui référence le bean, valeurs possibles: la classe du bean, une classe parente, une interface implémentée par la classe du bean ou une classe parente. Remarque: Cette action doit précéder les actions setproperty et getproperty.

<jsp:setproperty> Définit les propriétés d un JavaBean Attributs: name: id du bean property: nom de la propriété du bean à définir (ou *) param: nom du paramètre de l objet request dont la valeur sera affectée à la propriété (à utiliser dans le cas où le nom de la propriété et celui du paramètre sont différents). value: valeur à affecter dans la propriété.

<jsp:getproperty> Récupère la valeur d une propriété Attributs name : id du bean property: nom de la propriété

Action forward <jsp:forward page="url"> <jsp:param name=«par1" value="val"/> </jsp:forward> Remarque L action forward doit être appelée avant l envoi vers OutPutSream

Action include Exécution d une page jsp <jsp:include page="url" > <jsp:param name="param1 " value=«val"/> </jsp:include> Remarque Le fichier appelé ne doit pas modifié l entête http ou définir des cookies La page appelée peut récupérer les paramètres à l aide des méthodes getparameter() getparametervalues() de l objet request

request response out session config exception Application page pagecontext Objets implicites

Objet request Encapsule une requête http Méthodes Récupération des paramètres String request.getparameter(string nom) String[] request.getparametervalues(string nom) Enumeration request.getparameternames() Une énumération possède les méthodes suivantes:» e.hasmoreelements();» e.nextelement(); Map getparametermap() Un objet Map possède les éléments suivants:» P.get(clé) Récupération des cookies Cookie [] request.getcookies() Remarque: Request est une instance de javax.servlet.httpservletrequest Un objet request a la portée request

Objet response Encapsule une réponse envoyée à un client web Méthodes public void addheader(string nom, String valeur) public void addcookie(cookie cookie) public void sendredirect(string url) Remarque response est une instance de javax.servlet.httpservletresponse Un objet respnose à la portée page

Objet out Exemple: <% Iterator categories = themes.getallcategories(); while (cate00000000000gories.hasnext()) { String categorie = (String)categories.next(); out.println("<p><a href=\"" + replaceunderscore(categorie) + "\">" + categorie+ "</a></p>"); } %> Remarque out est une instance de la classe javax.jsp.jspwriter La portée de l objet out est page

Objet session Méthodes Object setattribute(string nom, Object valeur) Object getattribute(string nom) Enumeration getattributenames() void removeattribute(string nom) Remarque session est une instance de la classe javax.servlet.http.httpsession L objet session a la portée session Les sessions ne sont pas thread safe

Objet config L objet config est utilisé pour récupérer les paramètres d initialisation d une page jsp définis dans le DD web.xml <servlet> <param name>nom</param name> <param value>valeur</param value> </init param> </servlet> Méthodes config.getinitparameter(string nom) Enumeration config.getinitparametername() String config.getservletname() Remarque config a la portée page config est une instance de javax.servlet.servletconfig

Objets exception et application Objet exception Accessible uniquement dans les pages d erreurs. L objet exception est une référence à l objet de type java.lang.throwable créé par le serveur suite à une erreur Objet application Utilisé pour récupérer des paramètres application.getinitparameter(string name) Enumeration application.getinitparameternames() <web app> <context param> <param name>nom</param name> <param value>value</param value> </context param> </web app> Portée application application est une instance de javax.servlet.servletcontext

page

pagecontext

Initialisation et destruction d une page JSP Initialisation <%! public void jspinit() { // Ajouter le code qui doit être exécuté une fois par page et non par requête } %> Destruction <%! public void jspdestroy() { // libération des ressources } %>

Exemple 2 Les éléments suivants doivent être ajoutés dans l application: Un JavaBean User.java Enregistrement.html: page qui contient un formulaire de saisie des information Enregistrement.jsp: page de traitement des informations envoyées par le formulaire 1 Ajouter une classe JavaBean User.java dans le package jsp.exemple2 ayant les attributs suivants: prenom, nom, username et age.

Exemple 2: enregistrement.html 2 Ajouter la page enregistrement.html Les informations du formulaire doivent être traitées par la page enregistrement.jsp

Exemple 2: Enregistement.jsp Ajouter la page Enregistrement.jsp Les informations du formulaire doivent être stockées dans un javabean (user) Le lien Liste des thèmes envoie vers la page index.jsp

Exemple 2: modification de la page index.jsp 1. Si l utilisateur n est pas encore enregistré alors, on affiche un lien vers la page enregistrement.html, sinon on affiche la lite des thèmes

Exemple 2: Exercices Exercice 1 Modifier index.jsp de sorte à ce que uniquement les thèmes sélectionnés par l utilisateur soit affichées. Si l utilisateur n est pas enregistré, il doit être automatiquement redirigé vers la page enregistrement.html. Exercice 2 Ajouter des pages pour que l utilisateur puisse ajouter une question ou répondre à une question. Exercice 3 Ecrire une application web de gestion de QCM

Gestion des erreurs et des exceptions dans le descripteur de déploiement Gestion des exceptions java <error page> <exceptiontype>java.lang.numberformatexception</exception type> <location>/web INF/FormatNombre.jsp</location> </error page> Erreurs http <error page> <error code>404</error code> <location>/web INF/pageintrouvable.jsp</location> </error page>

Exercices Ecrire une page qui affiche une liste de fruits dans des cases à cocher et affiche la sélection de l utilisateur. Utiliser un javabean et l objet request Calcul du coût de revient d une voiture: //Définition des propriétés private float coutroue ; private float coutcarrosserie ; private float coutmoteur ; private float coutvolant ; private float coutrevient ; // En lecture seule