MVC et applications Web

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.

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

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

Web Tier : déploiement de servlets

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

Architecture Orientée Service, JSON et API REST

JavaServer Pages (JSP)

Projet de programmation (IK3) : TP n 1 Correction

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

Cours en ligne Développement Java pour le web

Projet Java EE Approfondi

Mise en œuvre des serveurs d application

avec STRUTS 1 STRUTS NTSys

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)

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

Alfstore workflow framework Spécification technique

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)

Les frameworks au coeur des applications web

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

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

Package Java.util Classe générique

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

Web Application Models

TD/TP PAC - Programmation n 3

Application Web et J2EE

Java pour le Web. Cours Java - F. Michel

Programmer en JAVA. par Tama

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

JOnAS 5. Serveur d application d

Construire une application marketing Facebook sur la plateforme Windows Azure

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

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

- Rapport de stage Étude de solutions pour l intégration de fonctionnalités

RMI le langage Java XII-1 JMF

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

Application web de gestion de comptes en banques

Développement des Systèmes d Information

Formation en Logiciels Libres. Fiche d inscription

Programmation Par Objets

Utilisation de Jakarta Tomcat

Java Naming and Directory Interface

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

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

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

Premiers Pas en Programmation Objet : les Classes et les Objets

Groupe Eyrolles, 2005, ISBN :

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

OpenPaaS Le réseau social d'entreprise

Auto-évaluation Programmation en Java

Corrigé des exercices sur les références

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

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

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

Documentation CAS à destination des éditeurs

Guide d implémentation Interface avec la plateforme de paiement

Construction d'une application MVC distribuée avec Spring Remoting. Partie 1 : HttpInvoker, Hessian, Burlap, RMI

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

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

Remote Method Invocation Les classes implémentant Serializable

Messagerie asynchrone et Services Web

Les architectures 3-tiers Partie I : les applications WEB

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

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

Arbres binaires de recherche

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

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

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

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

INF8007 Langages de script

4. SERVICES WEB REST 46

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Sécurité des applications web. Daniel Boteanu

Jacques Lonchamp. Conception. d applications en Java/JEE. Principes, patterns et architectures

Applications et Services WEB: Architecture REST

Le développement d applications Web

Programmation Web. Introduction

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

2 Chapitre 1 Introduction

Plateforme Systempay Descriptif de l interface avec la page de paiement

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

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

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

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

Java Licence Professionnelle CISII,

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

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

Cedric Dumoulin (C) The Java EE 7 Tutorial

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

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

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

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

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)

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

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

4. Groupement d objets

Transcription:

MVC et applications Web Servlets/JSP et modèle MVC Model2, Struts Pierre Yves Gibello pierreyves.gibello@experlog.com Mise à jour : 30 Septembre 2004 Ce document est couvert par la licence Creative Commons Attribution ShareAlike. This work is licensed under the Creative Commons Attribution ShareAlike License.

Modèle MVC Model / View / Controller Modèle : l application métier, les données ce qui est manipulé par l application. Vue : présentation de l état du modèle (généralement à un utilisateur) Contrôleur : interface d action sur le modèle (par exemple, pour les mises à jour) L interface utilisateur, composée de vues, intéragit avec le contrôleur.

Une «boucle de rétroaction»... Le Pattern MVC Voit Utilisateur Utilise Vue(s) Contrôleur Rafraîchit Application Modèle Manipule

Servlets/JSP «Model2» N Navigateur HTML (1) requête Servlet Contrôleur (3) forward (2) action sur le modèle Modèle (beans, BD ) (5) réponse JSP Vue (4) rafraîchir vue

Exemple : Servlet Contrôleur public class ControllerServlet extends HttpServlet { public void doget (HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException { String action = req.getparameter("action"); if("consulter".equals(action)) { String nom = req.getparameter("nom"); if(nom == null) forward("error.jsp", req, res); else { String tel = annuaire.cherchercontact(nom); req.setattribute("tel", tel); forward("contact.jsp", req, res); }

Struts Servlet Contrôleur générique org.apache.struts.action.actionservlet servlet mapping sur «*.do» Interaction avec le modèle ActionForm et Action à implémenter WEB INF/struts config.xml Association URL(.do)/ActionForm/Action/Vue JSP Taglibs utilitaires struts html, struts logic, struts bean

Struts : architecture ActionServlet Contrôleur JSP Vue (1) Appel java (2) forward ActionForm Accède à Action Modèle

ActionForm Java Bean getter et setter pour chaque champ de formulaire gestion d erreur (validate() pour validation de formulaire) associé à une URL «.do», une Action et une vue JSP dans struts config.xml

Action Classe qui intéragit avec l objet métier et l ActionForm Etend org.apache.struts.action.action public ActionForward perform( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) Lien avec l ActionForm, l URL et les vues (forward) dans struts config.xml ActionMapping pour accéder à l information, et pour le forward(vue)

struts config.xml <form beans> Implém. de <form bean name=«myform» l ActionForm type=«mypackage.myform»/> </form beans> <! association URL.do/ActionForm/Action/vue > <action mappings> <action path=«/myform» Signifie «/myform.do» type=«mypackage.myaction» Implém. de l Action name=«myform» input=«/saisie.jsp» JSP si erreur saisie scope=«request»> <forward name="success" path="/ok.jsp"/> <forward name="failure" path="/erreur.jsp"/> </action> </action mappings>

Formulaire de saisie <! saisie.jsp > <%@ taglib uri=«/web INF/struts html.tld» prefix=«html»> <! traitements erreur (attribut «input» de «action mapping») > <html:errors/> <! formulaire utilisant la taglib struts html > <! «myform»(.do) = attribut «path» de «action mapping» > <html:form action=«myform.do»> Nom : <html:text property=«nom»/> <html:submit /> </html:form>

ActionForm package mypackage; public final class MyForm extends ActionForm { private String nom_ = null; public void setnom(string n) { nom_ = n; } public String getnom() { return nom_; } }

Action package mypackage; public final class MyAction extends Action { public ActionForward perform( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { MyForm f = (MyForm)form; String nom = f.getnom(); // traitements request.setattribute(«lenom», nom); return mapping.findforward(«success»); } }

Vue JSP <! ok.jsp > <%@ taglib uri=«/web INF/struts logic.tld» prefix=«logic»> <logic:present name=«lenom» scope=«request»> Bonjour <logic:write name=«lenom» scope=«request»/> </logic:present>

Struts : installer Appli d exemple : struts blank.war Déployer dans webapps Modifier la configuration, et partir de l exemple Documentation : struts documentation.war Déployer dans webapps