Tp1 Ema EMACS Développement Web



Documents pareils
TP JAVASCRIPT OMI4 TP5 SRC

HTML, CSS, JS et CGI. Elanore Elessar Dimar

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

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

Web Tier : déploiement de servlets

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Alfstore workflow framework Spécification technique

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

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

TP1 : Initiation à Java et Eclipse

Cours 1: Java et les objets

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

Programmer en JAVA. par Tama

Documentation CAS à destination des éditeurs

Design patterns. Design patterns - définition. Design patterns - avantages

Architecture Orientée Service, JSON et API REST

Projet de programmation (IK3) : TP n 1 Correction

Les frameworks au coeur des applications web

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

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

Déployer une application cliente avec le Framework.NET 3.5 Client Profile

Introduction à Eclipse

Aspects techniques : guide d interfaçage SSO

Formation HTML / CSS. ar dionoea

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

as Architecture des Systèmes d Information

Chapitre 10. Les interfaces Comparable et Comparator 1

Travaux dirigés n 10

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

TP au menu «UI ANDROID»

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

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

1. La notion de cascade

Un ordonnanceur stupide

Groupe Eyrolles, 2005, ISBN :

{less} Guide de démarrage

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

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

TP2 : Client d une BDD SqlServer

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

Programmation avec des objets : Cours 7. Menu du jour

Media queries : gérer différentes zones de visualisation

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Premiers Pas en Programmation Objet : les Classes et les Objets

Master d Informatique Corrigé du partiel novembre 2010

Tutoriel d installation de Hibernate avec Eclipse

Corrigé des exercices sur les références

BIRT (Business Intelligence and Reporting Tools)

Créateur de sites Internet. Développeur de logiciels.

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)

Tp 1 correction. Structures de données (IF2)

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

Etude de cas : PGE JEE V2

Application de lecture de carte SESAM-Vitale Jeebop

Intégration de l interface graphique de Ptidej dans Eclipse

Guide de réalisation d une campagne marketing

Environnements de développement (intégrés)

TP SIN Programmation sur androïde Support : eclipse

Rafraichissement conditionné d'une page en.net

7 Développement d une application de MapReduce

Construire une application marketing Facebook sur la plateforme Windows Azure

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

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Auto-évaluation Programmation en Java

RESPONSIVE WEB DESIGN

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Responsive Web Design. La Rochelle, Avril 2014

Introduction au langage Java

Grille fluide. Une grille fluide sert à structurer la mise en page, la rendre harmonieuse et faciliter le passage au responsive web design

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.

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

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

Plateforme PAYZEN. Définition de Web-services

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Tutoriel : Feuille de style externe

Dis papa, c est quoi un bus logiciel réparti?

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

Une introduction à la technologie EJB (2/3)

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Création d une application JEE

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

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

MANUEL GANTT PROJECT

Construire des plug-ins pour SAS Management Console SAS 9.1

Programmation Par Objets

WebParts. Version 1.0

Bases Java - Eclipse / Netbeans

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

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

Dojo Toolkit. Créer des applications AJAX/RIA en JavaScript. Thomas Corbière

Arbres binaires de recherche

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

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

Zen, SASS, responsive design

UN SITE WEB RESPONSIVE EN UNE HEURE?

Transcription:

Tp1 Ema EMACS Développement Web 1/ Description de l application : Notre première application Web a pour objectif de gérer une liste de todo (truc à faire) : Diagramme de classe simplifié : Application instance:application addtodo(texte,actif) getlestodos() * lestodos Todo texte: String actif : boolean Design Pattern Singleton: public class Application { private static Application instance = null; public static Application getinstance() { if (instance == null) { instance = new Application (); return instance; private Application() { 2/ Création du projet et de la partie métier File > New > Dynamic Web Project Les codes de la partie métiers doivent être dans le dossier "Java Ressources :src" et dans un package metier. Préparez aussi des packages controleur et test. Codez les deux classes du diagramme UML ci-dessus et les méthodes nécessaires au fonctionnement.

Génération des getters et setters : 3/ Tests unitaires Dans le package test, faire clic droit New > Other > JUnit Test Case, puis remplir l interface comme la capture d écran ci-dessous :

Voici un extrait en exemple de code pour le test unitaire de la classe Todo. Essayez de coder quelques tests pertinents et exécutez les via clic droit sur le projet > Run As > Junit Test public class TodoTest { @Test public final void testtodo() { Todo todo = new Todo("du lait", false); assertnotnull( todo ); @Test public final void testgettexte() { Todo todo = new Todo("du lait", false); assertequals ( todo.gettexte(), "du lait"); @Test public final void testisactif() { Todo todo = new Todo("du lait", false); assertfalse( todo.isactif()); Faites de même pour la classe Application en codant les tests. A chaque fois que vous développerez une méthode importante, pensez à coder le test unitaire et à relancer la batterie de test pour vérifier la non régression de votre application.

4/ Partie pur Web Développez votre contrôleur en vous inspirant de cet exemple : protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String vue = request.getparameter("vue"); if ("liste_todos".equals(vue)) { String vuefinale = this.doaction(request); request.getrequestdispatcher(vuefinale).forward(request, response); private String doaction(httpservletrequest request) { String vueafficher = "erreur.jsp"; String action = request.getparameter("action"); if ("ajoutertodo".equals(action)) { String texte = request.getparameter("todo_texte"); Application.getInstance().addTodo(texte, false); vueafficher = "liste_todos.jsp"; return vueafficher; Développez une JSP pour présenter cette vue : Ajouter un formulaire pour mettre à jour la ou les checkbox sélectionnées. 5/ Ajout de fonctionnalité Ajouter une vue pour présenter les données au format xml appelé par un hyperlien pour proposer un fil d actualité <?xml version="1.0" encoding="utf-8"?> <todos> <todo id="1" texte="a faire" actif="false" /> <todo id="2" texte="a ne pas faire" actif="true" /> <todo id="3" texte="surtout a faire" actif="false" /> </todos>

Modifiez la vue pour obtenir un flux d actualité en RSS <rss version="2.0"> <channel> <title>application todo</title> <description>application todo by EMA 3 GSI </description> <link>http://localhost/todo/controleur?action=rss</link> <item> <title>todo 1</title> <link>http://localhost/todo/controleur?action=rss&id=1</link> <description><![cdata[penser au lait]]></description> </item> <item> <title>todo 2</title> <link>http://localhost/todo/controleur?action=rss&id=2</link> <description><![cdata[penser au pain]]></description> </item> </channel> </rss> Ajouter un bouton pour cocher toutes les checkbox en javascript en vous inspirant du code cidessous : $(document).ready(function(){ $("input#checkallbutton").click(function(event){ $("input[type='checkbox']").each( function() { $(this).prop('checked', true); ); ); ); Faites un bouton qui inverse la sélection de checkbox réalisée à la fois en javascript et en Java.côté serveur. Ajouter un bouton qui coche toutes les checkbox en soumettant le formulaire côté serveur. Ajout d un fichier de style css contenant le code Css suivant : div#central{ position:absolute; left: 50%; top: 10%; width: 800px; height: 800px; margin-top: -50px; margin-left: -400px; color: black; background-color:rgb(200,220,200); padding: 20px;

ul { list-style: none; margin: 0; padding: 4px 4px 4px 4px; ul > li{ display: inline; div#menu{ position:relative; left:10%; width:80%; background-color:rgb(200,240,220); Ajouter deux div dans la partie Vue avec les id référencés dans le code Css sachant que l un doit être inclus dans l autre. Faite un lien entre avec le fichier Css. Créer un menu horizontal utilisant une liste d éléments comme proposé par le site suivant : http://www.alsacreations.com/tuto/lire/574-creer-des-menus-simples-en-css.html Modifier les noms des menus pour les faire correspondre aux actions javascript initialement créées. Ajouter un évènement javascript/jquery sur tous les liens du menu : $(document).ready(function(){ $("a").click(function(event){ alert("menu 1!"); event.preventdefault(); ); ); Comment pensez vous qu il faut faire pour différencier les différents clics sur les menus?