Applications Web dynamiques vers une architecture MVC
|
|
- Amélie Larochelle
- il y a 6 ans
- Total affichages :
Transcription
1 Applications Web dynamiques vers une architecture MVC Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr 1
2 Servlet - Bilan Facile à programmer Programmation en Java Manque l'insertion de code dans les pages HTML Mélange entre aspects présentation (génération HTML), code métier et code d accès aux données persistantes (à priori pas très MVC ) But séparer ces aspects 2
3 Modèle MVC Model View Controler Séparation entre Le contrôleur : servlet qui aiguille les requêtes La vue : pages JSP pour l affichage à l écran Le Modèle : les classes (beans) qui traitent les données Requête HTTP Controler (quel traitement? quelle page? ) Model (traitement) Réponse HTTP View (page web) 3
4 JSP (Java Server Page) Langage de script (proche de Java) Générer des pages dynamiques Intégré dans des pages web Compilé dynamiquement en servlet Interaction avec des classes Java parseur JSP compilateur Page.jsp Servlet.java Servlet.class 4
5 Un petit exemple page language="java" %> <html> <head> <title>first.jsp</title> </head> <body> <h1>nombres de 1 à 10</h1> <% for(int i=1; i<=10; i++) { out.println(i + "<br>"); %> </body> </html> 5
6 Les directives directive attribut1="valeur" attribut2="valeur"... %> 3 directives possibles : page : informations relatives à la page <%@ page import=... %> <%@ page errorpage=... %> <%@ page isthreadsafe=... %>... include : fichiers à inclure littéralement (file) <%@ include file=... %> taglib : permet d'utiliser des librairies de tags personnalisés <%@ taglib uri=... prefix=... %> 6
7 Les déclarations <%! declaration %> variables et méthodes globales à la page Exemple <%! String Chaine = bonjour ; int Numero = 10 ; public void jspinit() { // instructions %> 7
8 Les scripts Java Du code Java : <% code Java %> Des évaluations d'expression : <%= expression %> Des variables prédéfinies <%@ page language="java" %> <html><head><title>first.jsp</title> </head><body> <h1>nombres de 1 à 10</h1> <% for(int i=1; i<=10; i++) { %> <%= i %> <br/> <% %> </body> </html> Variables prédéfinies HttpServletRequest request HttpServletResponse response HttpSession session ServletContext application PrintWriter out ServletConfig config... 8
9 Les actions Des tags standards des JSP de la forme <jsp:tag attribut1= valeur attribut2= valeur... /> <jsp:forward page= page2.jsp /> Transfère le contrôle à une autre page JSP (annule l appelante) <jsp:include page= page2.jsp /> Transfère le contrôle à une autre page JSP (inclusion) Peuvent prendre des paramètres avec <jsp:param name=... value=... /> (une JSP ou une Servlet) 9
10 Les actions <jsp:usebean id="nomattribut" class="package.classe" scope="portéeattribut> <%-- code executé si l'attribut est créé --%> </jsp:usebean> Importe un attribut si il existe, le crée sinon <jsp:usebean id="personne" class="testjsp.personne" scope="session/> équivaut à <% testjsp.personne personne = (testjsp.personne) session.getattribute("personne"); if (personne == null) { personne = new testjsp.personne(); session.setattribute("personne", personne); %> 10
11 Lien HTML/Servlet/JSP Une page HTML peut référencer une servlet Dans un formulaire <form action="action" method="post"> </form> Une servlet peut référencer une page JSP RequestDispatcher disp = request.getrequestdispatcher( page.jsp ); disp.forward(request, response); Passage de paramètre entre le servlet et la JSP request.setattribute("key", value); value = (ValueType)request.getAttribute("key"); // enregistrement dans la request, la session, ou le context 11
12 Exemple : annuaire 12
13 Exemple : architecture Une page JSP pour chaque écran user.jsp, person.jsp, listusers.jsp Une servlet qui aiguille les requêtes vers les pages Deux objets Java (beans) pour gérer les données Person.java, ListOfPerson.java 13
14 Exemple : user.jsp <%@ page language="java" %> <html> <body> <form action="action" method="post"> User : <input type="text" name="user"/><br/><br/> <input type="submit" value="enter"/> <input type="hidden" name="form" value="user"/> </form> </body> </html> 14
15 Exemple : person.jsp <%@ page language="java" %> <html> <body> <jsp:usebean id="user" class="directory.person" scope="session" /> <b> Enter a person</b> <br/><br/> User: <%= user.user %><br/> <form action="action" method="post"> Firstname : <input type="text" name="firstname"/><br/> LastName : <input type="text" name="lastname"/><br/> <input type="text" name=" "/><br/><br/> <input type="submit" value="add"/> <input type="hidden" name="form" value="person"/> </form> </body> </html> 15
16 Exemple : listusers.jsp <%@ page language="java" import="directory.*, java.util.*"%> <html><body> <jsp:usebean id="listofusers" class="directory.listofperson" scope="application"/> <b> List of registered persons </b> <br/><br/> <table border="2"> <tr><th>user</th><th>firstname</th><th>lastname</th><th> </th></tr> <% Enumeration enu = listofusers.list.elements(); while (enu.hasmoreelements()) { Person p = (Person)enu.nextElement(); %> <tr> <td><%= p.user %></td> <td><%= p.firstname %></td> <td><%= p.lastname %></td> <td><%= p. %></td> </tr> <% %> </table> </body></html> 16
17 Exemple : action.java (servlet) public class Action extends HttpServlet { protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String form = request.getparameter("form"); HttpSession session = request.getsession(); ServletContext context = getservletcontext(); if (form == null) { RequestDispatcher disp = request.getrequestdispatcher("user.jsp"); disp.forward(request, response); return; ListOfPerson listofusers = (ListOfPerson)context.getAttribute("listOfUsers"); if (listofusers == null) { listofusers = new ListOfPerson(); context.setattribute("listofusers", listofusers); 17
18 Exemple : action.java (servlet) if (form.equals("user")) { String u = request.getparameter("user"); if (listofusers.contains(u)) { RequestDispatcher disp = request.getrequestdispatcher("listusers.jsp"); disp.forward(request, response); return; else { Person p = new Person(); p.user = request.getparameter("user"); session.setattribute("user", p); RequestDispatcher disp = request.getrequestdispatcher("person.jsp"); disp.forward(request, response); return; 18
19 Exemple : action.java (servlet) if (form.equals("person")) { Person p = (Person)session.getAttribute("user"); p.firstname = request.getparameter("firstname"); p.lastname = request.getparameter("lastname"); p. = request.getparameter(" "); listofusers.list.add(p); RequestDispatcher disp = request.getrequestdispatcher("listusers.jsp"); disp.forward(request, response); 19
20 Exemple : les beans public class Person { public String user, firstname, lastname, ; public class ListOfPerson { public Vector list = new Vector(); public boolean contains(string user) { Enumeration enu = list.elements(); while (enu.hasmoreelements()) { Person p = (Person)enu.nextElement(); if (p.user.equals(user)) return true; return false; 20
21 JSTL : Java Standard Tag Library De nombreux tags Évite de développer de nombreux opérations en Java Intéressant pour les Web designers Librairie de base <%@ taglib uri=" prefix="c" %> Repose sur le Expression Language (EL) ${requestscope.data.field Accès au scope request (default) Récupère l'attribut data Accès à l'attribut field Maintenant intégré aux JSP 21
22 Servlet/JSP - Bilan Présentation Sous forme de pages HTML Programmation en Java dans les pages Code métier Sous forme de servlet Échange de données avec les pages sous forme de javabeans Modèle MVC donne une séparation claire entre Présentation (page JSP) Contrôle (servlet) Métier (programmes Java) Le traitement des données récupérées de la BD peuvent être lourds (d'où les EJB) 22
23 Modèle MVC Model View Controler Séparation entre Le contrôleur : servlet qui aiguille les requêtes La vue : pages JSP pour l affichage à l écran Le Modèle : les classes (beans) qui traitent les données Requête HTTP Controler (quel traitement? quelle page? ) Model (traitement) Réponse HTTP View (page web) 23
24 Architecture souhaitée Presentation (VC) Business (M) Requête HTTP Controler servlet result Facade Data Réponse HTTP View JSP/HTML 24
25 Architecture souhaitée Clients Serveur d'application (Jboss) SGBD (postgresql) Client Java RMI EJB Container Client Web HTTP Web Container EJB Facade BD Client Web service SOAP Servlet JSP Web Services Entity 25
26 Les EJB Entity beans Représentent les données manipulées par l application Chaque Entity est associé à une table au niveau de la base de données Session beans Accessibles à distance (via RMI et IIOP) Implémentent le code métier Stateless session beans : sans état Une instance pour plusieurs connexions clientes (allouée à partir d'un pool) Ne conserve aucune donnée dans son état Statefull session bean : avec état Création d une instance pour chaque connexion cliente Conserve des données entre les échanges avec le client Singleton: Instance Unique Création d une instance unique quelque soit le nombre de connexion. Message Driven Beans : Beans de messages Un listener exécute des traitements à réception d'un message JMS 26
27 EJB session Interface Remote Accessible à distance Interface Local Accessible en local uniquement (dans le serveur d'application) Si on ne définit pas d'interface, Local par défaut Classe du @Stateless) Peut implanter les 2 interfaces Local et Remote JNDI Les interfaces définies sont exportées dans JNDI Nom de la classe utilisée, ou nom passé en attribut du Une recherche retourne une référence au bean (unique ou une copie) 27
28 Un exemple : application bancaire Gestion de compte Données numero, nom, solde Méthodes Ajouter un compte Consulter un compte Consulter tous les comptes Créditer sur un compte Débiter d'un compte 28
29 Les données manipulées public class Compte implements Serializable { private int num; private String nom; private int solde; public Compte() { public Compte(int num, String nom, int solde) { this.num = num; this.nom = nom; this.solde = solde; public String tostring() { return "Compte [num="+num+", nom="+nom+", solde="+solde+"]"; // setters and getters 29
30 Interface Remote / interface public interface IBanqueRemote { public void addcompte(compte c); public List<Compte> consultercomptes(); public Compte consultercompte(int num); public void debit(int num, int montant); public void credit(int num, int public interface IBanqueLocal { public void addcompte(compte c); public List<Compte> consultercomptes(); public Compte consultercompte(int num); public void debit(int num, int montant); public void credit(int num, int montant); 30
31 Implantation d'un EJB public class BanqueEjbImpl implements IBanqueLocal, IBanqueRemote { private Map<Integer, Compte> comptes = new Hashtable<Integer, Compte>(); public void addcompte(compte c) { comptes.put(c.getnum(), c); public List<Compte> consultercomptes() { return new ArrayList<Compte>(comptes.values()); public Compte consultercompte(int num) { Compte c = comptes.get(num); if (c == null) throw new RuntimeException("Compte introuvable"); return c; 31
32 Implantation d'un EJB session public void debit(int num, int montant) { Compte c = consultercompte(num); if (c.getsolde()<montant) throw new RuntimeException("Solde insuffisant"); c.setsolde(c.getsolde()-montant); public void credit(int num, int montant) { Compte c = consultercompte(num); public void initialisation() { addcompte(new Compte(1, "dan", 2000)); addcompte(new Compte(2, "alain", 4000)); addcompte(new Compte(3, "luc", 6000)); 32
33 Déploiement dans JBoss On déploie l'archive du projet (war) qui inclut Les 2 interfaces : IBanqueLocal et IBanqueRemote Les 2 classes : Compte et BanqueEjbImpl <project-ejb> Export WAR File Dans JBoss On a lancé JBoss (bin/standalone.sh) On exporte le war dans standalone/deployments Le bean est exporté dans le JNDI du serveur 33
34 Déploiement dans JBoss 34
35 Un client lourd Un projet Java séparé Utilise RMI pour accéder à l'interface Remote public class ClientEjb { public static void main(string args[]) { try { String appname=""; String modulename="bank"; String distinctname="banqueejbimpl"; String viewclassname=ibanqueremote.class.getname(); Context ctx = new InitialContext(); String jndiname = "ejb:"+appname+"/"+modulename+"/"+distinctname +"!"+viewclassname; System.out.println(jndiName); IBanqueRemote stub = (IBanqueRemote)ctx.lookup(jndiName); System.out.println("affichage de tous les comptes"); List<Compte> cptes = stub.consultercomptes(); for(compte cp:cptes) System.out.println(cp); catch (Exception ex) {ex.printstacktrace(); 35
36 Un client web (servlet) Soit la servlet est dans une JVM séparée Configuration comme un client lourd Soit la servlet est dans le serveur d'application (avec les EJB) Injection de private IBanqueLocal facade; Au déploiement, variable initialisée avec une instance de stateless, statefull ou singleton 36
37 Un client web public class Controller extends HttpServlet { private static final long serialversionuid = private IBanqueLocal facade; protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { try { String action=request.getparameter("action"); if (action.equals("consulter")) { int num=integer.parseint(request.getparameter("num")); request.setattribute("num", num); request.setattribute("compte", facade.consultercompte(num)); else if (action.equals("consultertous")) { request.setattribute("comptes", facade.consultercomptes()); else 37
38 Un client web (servlet) if ((action.equals("debit")) (action.equals("credit"))) { int num=integer.parseint(request.getparameter("num")); int montant=integer.parseint(request.getparameter("montant")); request.setattribute("num", num); request.setattribute("montant", montant); if (action.equals("debit")) facade.debit(num, montant); else facade.credit(num, montant); catch (Exception ex) { request.setattribute("exception", ex.getmessage()); request.getrequestdispatcher("banque.jsp").forward(request, response); 38
39 Une petite JSP page language="java" import="bk.*, java.util.*" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>insert title here</title> </head> <body> <form action="controller" method="get"> <table> <tr> <td> Code :</td> <td><input type="text" name="num" value="${num"></td> <td><input type="submit" name="action" value="consulter"></td> <td><input type="submit" name="action" value="consultertous"></td> </tr> </table> </form> 39
40 Une petite JSP <% if (request.getattribute("compte")!= null) { %> <table> <tr><td> Num :</td><td>${compte.num</td></tr> <tr><td> Nom :</td><td>${compte.nom</td></tr> <tr><td> Solde :</td><td>${compte.solde</td></tr> </table> <form action="controller" method="get"> <table> <tr> <td><input type="hidden" name="num" value="${num"></td> <td><input type="text" name="montant" value="${montant"></td> <td><input type="submit" name="action" value="debit"></td> <td><input type="submit" name="action" value="credit"></td> </tr> </table> </form> <% %> 40
41 Une petite JSP <% List<Compte> l = (List<Compte>)request.getAttribute("comptes"); if (l!= null) { %> <table border="1" width="80%"> <tr> <th>num</th><th>nom</th><th>solde</th></tr> <% for (Compte c : l) { %> <tr><td><%=c.getnum() %></td><td><%=c.getnom() %></td><td><%=c.getsolde() %></td></tr> <% %> </table> <% %> ${exception </body> </html> 41
42 Exécution 42
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.
ASTRIUM - Toulouse JEE Formation 2013 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. Figure 1 Architecture
Plus en détailJavaServer Pages (JSP)
JavaServer Pages (JSP) XVIII-1 Prérequis pour ce cours Ce cours a trait à la programmation Java coté serveur Il faut connaître un minimum de technologie J2EE Il faut connaître les servlets XVIII-2 Motivation
Plus en détailWeb Tier : déploiement de servlets
Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation
Plus en détailServeur d'application Client HTML/JS. Apache Thrift Bootcamp
Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/
Plus en détailArchitecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
Plus en détailAvant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4
Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.
Plus en détailInstitut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Plus en détailClasse ClInfoCGI. Fonctions membres principales. Gestion des erreurs
Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailLes architectures 3-tiers Partie I : les applications WEB
Les architectures 3-tiers Partie I : les applications WEB 1 Evolutions logicielles Des objets aux composants... Objets JavaBeans, Objets ActiveX, Objets COM,... 1 Evolutions logicielles Des objets aux
Plus en détailProgrammation Par Objets
Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets
Plus en détailModule BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailMise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailProgramme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
Plus en détailSéance d ED n 5 : HTML et JavaScript
Séance d ED n 5 : HTML et JavaScript EXERCICE 1 1) le but de cet exercice est de construire l'interface suivante en html: une réponse : 1)
Plus en détailLe développement d applications Web
Le développement d applications Web Plan Principes des applications Web Origine et utilité des Servlets Présentation des Servlets Les JSP La Standard TAG Library Servlet, JSP et accès aux SGBD Les technologies
Plus en détailRemote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Plus en détailModélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework
Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé
Plus en détailApplication Web et J2EE
Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis
Plus en détailCompte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Plus en détailCréation d une application JEE
Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailArchitecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués
Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr
Plus en détailPackage Java.util Classe générique
Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object
Plus en détailProjet de programmation (IK3) : TP n 1 Correction
Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public
Plus en détailAlfstore workflow framework Spécification technique
Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date
Plus en détailBest Practices : Utilisation des APIs de Lotus Web Content Management
Best Practices : Utilisation des APIs de Lotus Web Content Management Agenda Scénarios IBM Lotus Web Content Management Java Server Page (JSP) Introduction Balises JSP Composants JSP Exemples JSP Page
Plus en détailCette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :
Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens
Plus en détailJ2EE - Introduction. Développement web - Java. Plan du chapitre
Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailCalcul Parallèle. Cours 5 - JAVA RMI
Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation
Plus en détailProgrammation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13
Programmation Réseau Sécurité Java Jean-Baptiste.Yunes@univ-paris-diderot.fr UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie
Plus en détailRMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailIntroduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)
Introduction PHP = Personal Home Pages ou PHP Hypertext Preprocessor Langage de script interprété (non compilé) Plan Avantages Fonctionnement interne Bases du langage Formulaires Envoi d un email Avantages
Plus en détailTD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting
IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailArchitectures client/serveur
Architectures client/serveur Master Technologies de l'internet 1 ère année Eric Cariou Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr 1 Tryptique
Plus en détailUne introduction à la technologie EJB (2/3)
Une introduction à la technologie EJB (2/3) 1 Les singletons des EJB 3.1 1.1 Synchronisation gérée manuellement Depuis la version 3.1, des EJB Statless à instance unique sont maintenant disponibles : ce
Plus en détailAuto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailCorrigé des exercices sur les références
Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailJava Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
Plus en détailHTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ...
HTTP 1.1 Place de http dans le modèle osi : HyperText Transfer Protocol...... TCP IP...... HTTP est un protocole «sans état» : chaque page WEB est transmise dans une connexion séparée (sauf pour les connections
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailDocumentation CAS à destination des éditeurs
Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges
Plus en détailServeur d'archivage 2007 Installation et utilisation de la BD exist
Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier
Plus en détailAspects techniques : guide d interfaçage SSO
COURDECO Aspects techniques : guide d interfaçage SSO Septembre 2011 Cette annexe présente succinctement le système d'authentification unique (SSO : single sign on, authentification unique) utilisé dans
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailLa persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection
Plus en détailTD HTML AVEC CORRECTION
TD HTML AVEC CORRECTION On utilisera Notepad++ comme éditeur sur Windows Vous créez un répertoire www sous vos répertoires personnels et vous mettrez vos pages dedans. Créez vos fichiers HTML et n oubliez
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détail1. Installation d'un serveur d'application JBoss:
EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download
Plus en détailDjango. Framework de développement Web
Django Framework de développement Web Disclaimer Je ne suis pas un expert Python Je ne suis pas un expert Django Expérience basée sur le développement de deux petits sites en Django Trivialibre MapOSMatic
Plus en détailLe Modèle de Sécurité dans JAVA
Le Modèle de Sécurité dans JAVA $Id : javasecurity.lyx 1565 2008-10-22 13 :57 :30Z phil $ 22 octobre 2008 Université de Cergy-Pontoise, 2 rue A. Chauvin 95302 Cergy-Pontoise cedex e-mail laroque@u-cergy.fr
Plus en détailA DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT
DOCUMENTATION CAS A DESTINATION DES SERVICES TIERS Titre descriptif du document Référence du document REFO-DT-ENTV2-ServeurCAS-v1.2.docx Nom du fichier REFO-DT-ENTV2-ServeurCAS-v1.2.docx Version du document
Plus en détailLe passage à l échelle de serveur J2EE : le cas des EJB
Le passage à l échelle de serveur J2EE : le cas des EJB Sylvain Sicard, Noël De Palma, Daniel Hagimont CFSE 4 5-8 Avril 2005 LSR 1 Plan de la présentation 1. Architecture de serveur J2EE en grappe 2. Problématique
Plus en détailPour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.
Chapitre 7 Le mode de communication en connexion est, a priori, supporté par le protocole TCP. Ce protocole fournit une communication fiable; les données sont transmises comme chaînes d octets. Avant de
Plus en détailRAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailProgrammation par composants (1/3) Programmation par composants (2/3)
Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailJava Naming and Directory Interface
Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard
Plus en détailRefonte front-office / back-office - Architecture & Conception -
Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailExtension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.
Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence
Plus en détailPage 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>
Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances
Plus en détailBases de Données et Internet
Informatique S6 3A Bases de Données et Internet Python: SGBD et CGI Alexis NEDELEC LISYC EA 3883 UBO-ENIB-ENSIETA Centre Européen de Réalité Virtuelle Ecole Nationale d Ingénieurs de Brest enib c 2008
Plus en détailPremière coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE
Première coupe : CREATION : 2010/04/22 MISE A JOUR : 2010/07/01 GLASSFISH:3.0.1 NETBEANS : 6.8 Ce TP de découverte de la plateforme Java EE est une traduction adaptée de «Your First Cup :An Introduction
Plus en détailEXA1415 : Annotations JavaEE : @Local, @Stateful
EXA1415 : Annotations JavaEE : @Local, @Stateful Sur une idée de P. Sécheresse sur http://developpez.com (http://tinyurl.com/5gr57j) Diapo 1 Objectif Créer un EJB CalculatriceBean (V1) Contient une opération
Plus en détail2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
Plus en détailComposants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Plus en détailGroupe Eyrolles, 2005, ISBN : 2-212-11406-0
Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 10 L atelier MyEclipse Eclipse facilite considérablement le développement Java en équipe. Son puissant éditeur, associé à des fonctionnalités de complétion de
Plus en détailApplet pour visualiser les variables «automate» notifiées
Applet pour visualiser les variables «automate» notifiées Sommaire 1. Introduction...2 2. Lecture de variables «automate» notifiées...2 2.1. IHM servant au test :...2 2.2. Codage de l'applet :...2 3. Codage
Plus en détailModule Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP
Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec
Plus en détailAttaques de type. Brandon Petty
Attaques de type injection HTML Brandon Petty Article publié dans le numéro 1/2004 du magazine Hakin9 Tous droits reservés. La copie et la diffusion de l'article sont admises à condition de garder sa forme
Plus en détailFormation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux
Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un
Plus en détailLambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailSynchro et Threads Java TM
Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire
Plus en détailLa gestion de la persistance avec Hibernate. Hibernate et la gestion de persistance. La gestion de la persistance (1/2) Introduction
La gestion de la persistance avec et la gestion de persistance Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com
Plus en détailTP JAVASCRIPT OMI4 TP5 SRC1 2011-2012
TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE
Plus en détailGestion du cache dans les applications ASP.NET
Gestion du cache dans les applications ASP.NET Version 1.0 James RAVAILLE http://blogs.dotnet france.com/jamesr 2 Gestion du cache dans les applications ASP.NET v 1.0 03/01/09 Sommaire 1 Introduction...
Plus en détailProgrammation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.
Programmation Orientée Objet - Licence TIS CM8/9 Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.fr Poitiers, le 13/03/2006 Rappel sur la séance précédente La fois précédente, nous avons vu : 1 UML
Plus en détailJava pour le Web. Cours Java - F. Michel
Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications
Plus en détailJava RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011
Java RMI Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau
Plus en détail10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr]
10. Base de données et Web 313 Evolution de l'information Ordre de grandeur : 314 1Mo : 1 gros roman 200Mo : ce que mémorise un être humain dans sa vie. 900Mo : information contenue dans le génome d'une
Plus en détailPHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)
PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailPDO : PHP Data Object 1/13
PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension
Plus en détailIntroduction. Passage de sites statiques à des sites dynamiques
PHP (ET MYSQL) Introduction HTML : pages destinées à être publiées sur Internet Texte à afficher + instructions de mise en page Pas d instructions de calcul ou de traitements conditionnels Des sites de
Plus en détail