Java EE - Cours 7. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»



Documents pareils
Tour d horizon des CMS. Content Management System

Web Tier : déploiement de servlets

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.

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

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

«Cachez-moi cette page!»

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

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)

Formation : WEbMaster

Compte Rendu d intégration d application

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

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

Les outils de création de sites web

CQP Développeur Nouvelles Technologies (DNT)

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

4. SERVICES WEB REST 46

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

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

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

Application web de gestion de comptes en banques

Mise à jour : janvier 2015 POURQUOI ET COMMENT OPTIMISER LES VISUELS

PERSONNALISATION DE LA PAGE DE PAIEMENT & TICKET DE PAIEMENT

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

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

Mise en œuvre des serveurs d application

Programmation des Applications Réparties. Parsers XML DOM et SAX

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Optimiser les s marketing Les points essentiels

JavaServer Pages (JSP)

Formation en Logiciels Libres. Fiche d inscription

Programmation Internet Cours 4

Audit de site web. Accessibilité

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

Module http MMS AllMySMS.com Manuel d intégration

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

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)

Le stockage local de données en HTML5

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

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Tutoriel d installation de Hibernate avec Eclipse

ECLIPSE ET PDT (Php development tools)

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

Programmation Web TP1 - HTML

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

RÉALISATION D UN SITE DE RENCONTRE

Déployer les Fonts, Icones, et Images avec Forms Services 11G

L optimisation d une PowerBoutique pour le référencement

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

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

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

GESTION DES CONNAISSANCES AU GEIPAN

Documentation de conception

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

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

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

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

IBM DB2 Alphablox. d administration GC

Introduction aux concepts d ez Publish

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

Introduction à Expression Web 2

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

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

Sage CRM. 7.2 Guide de Portail Client

WEBSEMINAIRE INTRODUCTION AU REFERENCEMENT

Architecture Orientée Service, JSON et API REST

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Utilisation de Jakarta Tomcat

Environnements de Développement

Single Sign-On open source avec CAS (Central Authentication Service)

Initiation à html et à la création d'un site web

Introduction à la plateforme J2EE

Application Web et J2EE

HTML. Notions générales

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

Formation Webmaster : Création de site Web Initiation + Approfondissement

A. Architecture du serveur Tomcat 6

Qui sommes-nous? Buddyweb est une agence digitale spécialisée dans les projets web et mobiles.

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Introduction à. Oracle Application Express

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

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

Développement des Systèmes d Information

BIRT (Business Intelligence and Reporting Tools)

Accès aux bases de données

Serveur d'archivage 2007 Installation et utilisation de la BD exist

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

Plateforme publicitaire Entreprendre. Guide de normes

Architectures web/bases de données

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

Présentation. Référenciel : textes officiels

Formation HTML / CSS. ar dionoea

SOUTENANCE ORALE RAPPORT DE PROJET D INFORMATIQUE

Avantages et méthode de la bonne gouvernance d'entreprise - le cas pratique des PSF

Programmation Web. Madalina Croitoru IUT Montpellier

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Transcription:

Java EE - Cours 7 Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Rappels 2

Feuilles de Styles : CSS Lorsque l on réalise un site Web, il faut dissocier la partie forme de la partie fond. Le fond correspond au contenu de notre page Web (texte, images, ) La forme correspond à la mise en page de notre contenu (couleurs, cadres, centrage, polices, tailles ) Le fond est stocké dans le fichier HTML. La forme est stocké dans une feuille de style : un fichier CSS (Cascading Style Sheets) 3

Feuilles de Styles : CSS Dans la plupart des cas, il faut éviter de définir la forme d un site Web directement dans les fichiers HTML (même si c est possible de le faire) pour plusieurs raisons : Réutilisabilité / Homogénéité : Une fois défini, un fichier CSS peut être appliqué très facilement sur l ensemble d un site Web. Toutes les pages Web auront donc une même forme. Maintenance / Mise à jour : Si l on veut faire une modification sur le visuel de notre site, il suffit de modifier la propriété correspondante dans le fichier CSS et tout le site sera automatiquement affecté. Séparation des tâches : La structure et la présentation sont gérées séparéments Simplification : Le code HTML est réduit en taille et en complexité 4

Utilisation : Feuilles de Styles : CSS Un fichier CSS est un fichier texte d extension.css Il est lié à une page HTML par la balise suivante (dans la balise <head>) <link rel="stylesheet" type="text/css" href="style.css"> nom du fichier CSS Un fichier CSS contient un ensemble de règles d affichage. Exemple : Le fichier CSS suivant fera afficher tous les titres h1 en italique h1 { } font-style: italic; 5

Feuilles de Styles : CSS L inconvénient de l écriture précédente est qu elle va s appliquer sur toutes les balises h1. Si l on veut spécifier son utilisation à certaines balises, on doit utiliser un attribut class ou bien id pour cette balise. Ex: fichier html <h1> Voici un Titre h1 </h1> <h1> En voici un autre </h1> <h1 class="rouge"> Celui-ci a une classe spéciale </h1> Fichier css.rouge { } color: red; La différence entre id et class est que l attribut id ne doit être utilisé qu une fois dans tout le document, il est unique. 6

Feuilles de Styles : CSS Le dernier inconvénient que l on pourrait avoir est que les balises ou classes définies dans le fichier CSS sont des balises HTML prédéfinies. Comment pouvoir créer un style s appliquant uniquement à une portion de texte du texte suivant? <p> </p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. 7

Feuilles de Styles : CSS Il faut utiliser les balises <span> (ligne) ou <div> (bloc). Ce sont des balises qui n ont aucun effet, leur seule utilité est de pouvoir appliquer un style CSS particulier entre leurs bornes. Ex: <p> </p> Lorem ipsum dolor sit amet, <span class="rouge">consectetuer adipiscing</span> elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. 8

Quelques balises HTML Pour insérer une image dans un fichier html, on utilise la balise suivante : <img src="monimage.bmp" alt="" /> Le format de l image peut être bmp, jpg, gif, L attribut alt est obligatoire si l on respecte la norme W3C La balise <FIELDSET> permet un regroupement de champs de saisie en catégories logiques ( thématiques ). Elle peut être associée à une balise <LEGEND> pour ajouter une légende au cadre. 9

Gestion de BDD en Java Java peut gérer des bases de données relationnelles en utilisant les JDBC (Java DataBase Connectivity). En JEE, notre serveur étant codé en Java, il est également possible d utiliser les jdbc pour communiquer avec une BDD. Java peut également gérer des fichiers XML en utilisant DOM ou SAX (cf le cours correspondant). Nous pouvons donc également stocker des informations via ce format. Il existe des frameworks spécifiques (appelés frameworks de persistance) permettant de mapper des tables de bases de données (relationnelles ou XML) directement en objets Java. Ceux-ci sont utilisés via un fichier.jar à ajouter au projet Java. Ils peuvent être orientés uniquement Java EE ou bien plus largement Java SE. Le plus connu est Hibernate 10

Gestion des ressources externes Le serveur JEE peut contenir un ensemble de fichiers de ressources : images, CSS, videos, XML, Sous Eclipse, tous les fichiers de ressources doivent être placés dans le dossier WebContent, qui sera ensuite déployé par Eclipse à la racine de notre serveur. Il est possible de créer une architecture de dossiers dans le dossier WebContent afin de "classer" les ressources, elle sera déployé ainsi à la racine de notre serveur. Pour accéder à l URL d un fichier sur notre serveur, il y a plusieurs possibilités : Utiliser la propriété "wtp.deploy" => Ne fonctionne que sous Eclipse Utiliser l URL de notre site Web => http://localhost:8080/... Utiliser la syntaxe suivante dans une Servlet, qui nous donne le chemin physique de l emplacement où est déployé notre serveur sur la machine : getservletcontext().getrealpath(this.getservletconfig().getservletname()) 11

Les Cookies 12

Historique Inventés par Lou Montulli alors qu'il travaillait chez Netscape Communications. Leur but premier est d'adapter dynamiquement le contenu d un site Web aux habitudes de navigation de l'internaute. Ils sont souvent l objet de polémique, car ils peuvent permettre à un site de récupérer des informations sur votre activité Internet. Par exemple sur les différents sites que vous avez visités et éventuellement les données que vous avez échangés. 13

Fonctionnement Les cookies sont des fichiers textes, stockés du côté du client par son navigateur Web. C est le site qui demande au navigateur du client de créer un cookie dans l en-tête HTTP de sa réponse. Le navigateur peut être configuré pour le refuser. L'en-tête HTTP réservé à l'utilisation des cookies s'appelle Set- Cookie, il s'agit d'une simple ligne de texte de la forme : Set-Cookie : NOM=VALEUR;domain=NOM_DOMAINE;expires=DATE 14

Fonctionnement Chaque navigateur a sa propre manière de stockage des cookies (un fichier ou plusieurs, crypté ou pas, ) Un cookie a une durée de vie limitée, fixée par le concepteur du site. Ils peuvent aussi expirer à la fin de la session de l utilisateur. Les cookies ne sont donc pas forcément supprimés après fermeture du navigateur. Ainsi, même après fin de la session, ils conservent leurs information sur la machine du client. 15

Pourquoi les utiliser? Enregistrer des informations sur le visiteur ou sur son parcours dans le site. Reconnaître les habitudes d'un visiteur et personnaliser la présentation de son site pour chaque visiteur. Mémoriser des informations sur le long terme pour chaque visiteur. Ex : Garder en mémoire un panier d achat dans le cas d un site de vente Retenir les identifiants de connexion à une éventuelle partie privée : lorsque le visiteur revient sur le site, il ne lui est plus nécessaire de taper son nom et son mot de passe pour se faire reconnaître, puisqu'ils sont automatiquement envoyés par le cookie 16

Limitations Les cookies sont soumis a plusieurs contraintes : Leur nombre total est limité à 300. La taille maximale d'un cookie est de 4 ko. Il ne peut exister au maximum que 20 cookies par domaine. 17

Structure Un Cookie contient plusieurs paramètres dont 2 principaux : Name : Nom du Cookie Value : Valeur du Cookie Il peut également stocker d autres informations plus générales : MaxAge : La durée de vie maximale du cookie (en secondes), -1 s il est détruit à la fermeture du navigateur Comment : Commentaire décrivant le but de ce cookie Domain : Le nom du domaine pour ce cookie Path : L URL de la page sur le serveur qui a créé ce cookie Secure : Décrit si le navigateur peut envoyer ce cookie à travers n importe quel protocole, ou s il doit être sécurisé Version : Décrit la version du protocole avec lequel ce cookie est accepté 18

Les Cookies en JEE Le conteneur JEE se charge de gérer le parsing de la requête HTTP entrante et sortante. Il crée un tableau contenant les informations de tous les cookies envoyés par le navigateur du client. Ce tableau peut être récupéré dans l objet request. Pour récupérer les cookies provenant de la requête du client, il suffit d'utiliser la méthode getcookies() de l'objet HttpServletRequest. Cookie[] getcookies() La classe javax.servlet.http.cookie représente l objet Java encapsulant toutes les opérations nécessaires à la manipulation des cookies. 19

Les Cookies en JEE Le serveur JEE peut également envoyer une demande de création de Cookie au Client. Pour cela, il doit créer un objet Cookie puis appeler la méthode addcookie() de l'objet HttpServletResponse. response.addcookie(moncookie); Le constructeur de la classe Cookie crée un cookie avec un nom et une valeur passés en paramètre. Il est toutefois possible de modifier la valeur de ce cookie ultérieurement grâce à sa méthode setvalue(). Cookie MonCookie = new Cookie("nom", "valeur"); La méthode getcookies() retourne un tableau contenant l'ensemble des cookies présents chez le client. Il est ainsi possible de parcourir le tableau afin de retrouver un cookie spécifique grâce à la méthode getname() de l'objet Cookie. La récupération de la valeur d un cookie se fait grâce à la méthode getvalue() de l objet Cookie. String Valeur = Cookie.getValue(); 20

Exemple Cookie[] mescookies = request.getcookies(); // Je récupère tous les cookies if (mescookies!=null) { for (int i=0; i<mescookies.length; i++) { // S'il existe un Cookie nommé nomcookie" if (mescookies[i].getname().equals( nomcookie )) { // J ai trouvé le cookie que je cherchais, j affiche sa valeur: System.out.println(mesCookies[i].getValue()); } } } 21

Webographie Cours complet sur les CSS : http://www.cssdebutant.com/ Site de sun sur la classe Cookie: http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/http/cookie.html Description de l utilisation des Cookies: http://www.commentcamarche.net/contents/securite/cookies.php3 22