Génie logiciel. Intranet Ressources Humaines. Dossier de conception. François COJEAN Alexandre JARNOUX EPSI CSII 2 1

Dimension: px
Commencer à balayer dès la page:

Download "Génie logiciel. Intranet Ressources Humaines. Dossier de conception. François COJEAN Alexandre JARNOUX EPSI CSII 2 1"

Transcription

1 Génielogiciel IntranetRessources Humaines Dossierdeconception AlexandreJARNOUX EPSI CSII2 1

2 Sommaire 1.Lesgrandschoixd architecture LeframeworkSpring:Lesgrandsconcepts IntroductionàSpring Ledesignpattern:InversionOfControlIOC) Lefichierdeconfiguration ArchitectureMVCavecSpring MVC Pagesimple Pageavecformulaireetvalidationdedonnées AccèsauxdonnéesavecJPAencapsuléparSpring Créationd'unEJBentity LacoucheDAODataAccessObject) Lacoucheservice Architecturephysique Diagrammededéploiement Architectureinterne Descriptiongénériquedespackages Schémadelabasededonnées Modèlelogiquedesdonnées ScriptSQLdecréationdelabase Lesfonctionnementsgénériques Listerdeséléments Ajouterunélément Modifierunélément Supprimerunélément...37 AlexandreJARNOUX EPSI CSII2 2

3 1.Lesgrandschoixd architecture 1.1.LeframeworkSpring:Lesgrandsconcepts IntroductionàSpring ToutepersonneayantabordéledéveloppementJEEdansuneapplicationn tierss'estvite rendu compte de la rapide complexité de ce genre de développement. Le jonglage permanent entre les différentes technologies, telles que servlet, conteneur d'application, EJB, contexte de persistence,jsp,...,nerendpaslaviefacileauprogrammeur. LebutduframeworkSpringestdesimplifierlavieduprogrammeurJEE,enapportantun framework open source, spécialisé pour le développement d'applications 3 tiers et simple à utiliser.uneautregrandequalitédespringestd'êtrenonimmersif.springsedéfinitcommeun conteneur dit "léger". Il se compose d'une infrastructure similaire à celle d'un conteneur d'applications. Il prend donc en charge la création d'objets et la mise en relation d'objets par l'intermédiaired'unfichierdeconfigurationquidécritlesobjetsàfabriqueretlesrelationsde dépendances entre ces objets. Le gros avantage par rapport aux serveurs d'applications est qu'avecspring,lesclassescréées,n'ontpasbesoind'implémenterunequelconqueinterfacepour êtreprisesenchargeparleframework. Pourarriveràcerésultat,Springreposesurtroisconcepts: LedesignpatternInversiondecontrôleIOC:InversionOfControl) LaprogrammationorientéaspectPOA) Une couche d'abstraction permettant l'intégration aisée d'autres framework dans le framework. Spring agit un peu à la manière d'un chef d'orchestre dans le projet en permettant d'encadrer,decontrôleretdefairecohabiterlesdifférentescoucheslogiciellesd'uneapplication JEE Ledesignpattern:InversionOfControlIOC) L'inversion de contrôle repose sur le principe que l'application n'appelle pas le framework mais que le framework appelle l'application. Le framework devient donc le chef d'orchestreetencadrecomplètementl'application. LeframeworkSpringestbâtisurceconcept.Etnotammentsurledesignpatterndérivé de l'inversion de contrôle qui est l'injection de dépendances. Il s'agit de diminuer les dépendancesentrelesobjets. Prenonsunexempleconcret: Imaginons que l'on conçoit un objet voiture de type Voiture. Cette voiture dépend d'un objetklaxondetypeklaxon. Dans la pratique pour construire notre voiture, on n'aura pas toujours un Klaxon à disposition.l'idéedel'injectiondedépendancesestd'avoiruneusineàpièceprêteafournirdes objets de type Klaxon pour être injecter dans notre objet de type Voiture. Il est possible d'injecterlesobjetsàl'instanciationd'unobjetougrâceàunmodificateurgetter,setter). AlexandreJARNOUX EPSI CSII2 3

4 Springmetàdispositioncemécanismedefabriqued'objets.Lesobjetssontsoitdetype singletonuneseuleetmêmeinstancedanstoutel'application),soitdetypeprototypemultiple instancesdansl'application).cettefabriqued'objetestdécritesouslaformed'unouplusieurs fichiersxml,chargésparleframeworkaudémarragedel'application.danslasuitedudocument onappelleracefichier:lefichierdeconfigurationdespring Lefichierdeconfiguration VoyonsàquoiressembleunexempletrèssimpledefichierdeconfigurationpourSpring, surnotreexempleprécédent:lavoiture. <beans> <bean id="klaxon" class="klaxon" scope="prototype" /> <bean id="voiture" class="voiture" scope="prototype" <property name="leklaxon" ref="klaxon" /> <bean/> </beans> Spring,configuréaveclefichierprécédent,seraitenmesured'injecteruneinstanced'un objet de type Klaxon dans la propriété leklaxon, ce dans un objet de type Voiture dont l applicationauraitbesoin. LaclasseVoitureressembleraitàquelquechoseprochedececi: class Voiture { private Klaxon leklaxon; public Klaxon getleklaxon) { return this.leklaxon; public void setleklaxonklanxon k) { this.leklaxon = k Spring, à l'aide du modificateur sur l'attribut leklaxon de la classe Voiture et de la fabrique d'objet qu'il met à disposition, est en mesure d'injecter directement un objet de type Klaxon dans une instance de Voiture. Ce concept d'injection de dépendance peut-être mis en pratique sur énormément de cas pratique, et montre notamment sa puissance sur les objets qui doivent exister dans l'application sous la forme de singleton. Ainsi, le code source de l'application sera complètement débarrassé des fioritures qui le rendent compliqué et se résumera simplement à récupérer le singleton à partir de la fabrique d'objet de Spring. Dans une application 3-tiers MVC), le fichier de configuration de Spring rassemble : Les références aux actions Classe implémentant Controller) soumises au contrôleur. Les références aux objets de service accédant à la couche métier de l'application. Les références aux objets DAO accédant directement à la couche métier de l'application. Les références aux objets permettant l'accès aux sources de données de l'application. Les références aux objets permettant l'accès à la couche de persistance de l'application. Les références aux objets permettant d'automatiser la gestion des transactions de la couche de persistance. Et plus généralement, les références aux objets devant être gérés par Spring. AlexandreJARNOUX EPSI CSII2 4

5 La configuration de Spring peut être repartie dans plusieurs fichiers XML. Dans notre projet, la configuration de la couche MVC du projet se trouve dans le fichier '/WEB- INF/spring-servlet.xml' alors que la configuration de la couche applicative se trouve dans le fichier '/WEB-INF/applicationContext.xml'. AlexandreJARNOUX EPSI CSII2 5

6 1.2.ArchitectureMVCavecSpring MVC Pagesimple Figure : Cheminement d'une requête HTTP d'accès à une page simple dans l'architecture MVC Commentaires des étapes numérotées : 1) Le navigateur du client envoie une requête HTTP pour accéder à une page nommée 'helloworld.htm'. L'adresseHTTPdemandéeestlasuivante:' 2) Le serveur web Apache Tomcat) reçoit la requête HTTP et passe la main à la servlet désignéecommecontrôleurprincipaldanslefichier'/web INF/web.xml'. Extraitdufichier'/WEB INF/web.xml': <-- La servlet repond aux requete HTTP se terminant par.htm --> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> <-- La servlet principale est de type DispatcherServlet --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> Ici,laservletdésignéeestlaclasseDispatcherServletfourniparleframeworkSpring. AlexandreJARNOUX EPSI CSII2 6

7 Le contrôleur principal analyse URL de la requête HTTP et découpe la partie finale : 'helloworld.htm'. A partir du fichier de configuration de Spring, il va instancier la classe implémentantl'interfacecontrollerassociéàcetteaction. Extraitdufichier'/WEB INF/spring servlet.xml': <!-- couches MVC --> <bean name="/helloworld.htm" class="helloworldcontroller"> Le controleur principal va automatiquement appeler la méthode handlerequest), définie dans l'interface Controller de Spring, de la classe HelloWorldController. 3) L'instance de la classe HelloWorldController va si nécessaire faire appel à la couche service pour récupérer des données dans la couche métier. 4) La couche service fait appel à la couche DAO. 5) La couche DAO accède à la source de données et récupère les données demandées. 6) La source de données renvoie les données demandées à la couche DAO. 7) La couche DAO renvoie les données demandées à la couche service. 8) La couche service renvoie les données demandées à l'instance de la classe HelloWorldControler. 9) L'instance de la classe HelloWorldController prépare la vue. Elle instancie un objet implémentant l'interface ModelAndView. Elle y insere les données précédement récupérées dans le modèle et renvoie cet objet au contrôleur principal. Celui-ci appelle automatiquement la méthode render) de l'instance de ModelAndView. 10) Le viewresolver définit dans le fichier de configuration de Spring va ensuite renvoyer la page JSP approprié avec les données du modéle. Extrait du fichier '/WEB-INF/spring-servlet.xml' : <-- Resolveur de vue --> <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="viewclass" value="org.springframework.web.servlet.view.jstlview"/> <property name="prefix" value="/web-inf/jsp/"/> <property name="suffix" value=".jsp"/> </bean> Avec cette configuration, le resolveur de vue, va automatiquement renvoyer la JstlView présente dans le fichier '/WEB-INF/jsp/helloworld.jsp' à l'aide du préfixe et du suffixe définit dans la configuration XML. 11) Le navigateur du client interprète le code JSP et affiche la page JSP helloworld.jsp. Pour le client, tout est transparent et l'adresse dans la barre d'adresse de son navigateur est toujours ' AlexandreJARNOUX EPSI CSII2 7

8 1.2.2.Pageavecformulaireetvalidationdedonnées Le framework Spring met à disposition plusieurs types de contrôleurs spécialement dédiés pour la gestion des formulaires. Ils permettent d'injecter et de contrôler les données du formulaire avant et après sa soumission. Un mécanisme de validation des champs est aussi disponible et permet d'afficher les erreurs de saisie sur le formulaire. Nous allons illustrer le fonctionnement de ces mécanismes sur l'exemple d'un formulaire d'authentification avec gestion de validation des données saisies. Figure : Cheminement d'une requête HTTP d'accès à une page avec un formulaire et validation des données dans l'architecture MVC. Commentaires des étapes numérotées : 1) L'URL appelée par le navigateur client est ' 2) Le serveur web Apache Tomcat) reçoit la requête HTTP et passe la main à la servlet désignée comme contrôleur principal Spring RequestDispatcher) dans le fichier '/WEB-INF/web.xml'. Le contrôleur principal analyse URL de la requête HTTP et découpe la partie finale : 'identification.htm'. A partir du fichier de configuration de Spring, il va instancier la classe implémentant l'interface Controller associée à cette action. Extrait du fichier '/WEB-INF/spring-servlet.xml' : <!-- Controllers --> <bean name="/identification.htm" class="identificationcontroller"> <property name="commandclass" value="utilisateur" /> <property name="formview" value="identification" /> <property name="successview" value="accueil_rh.htm" /> <property name="validator" ref="identificationvalidator" /> </bean> AlexandreJARNOUX EPSI CSII2 8

9 <!-- Validadors --> <bean name="identificationvalidator" class="identificationvalidator"> <property name="su" ref="serviceutilisateur" /> </bean> Ici, la classe associée est IdentificationController. Cette classe hérite de la classe fournie par le framework Spring SimpleFormController, qui elle-même implémente l'interface Controller. On remarque que plusieurs propriétés sont associées au contrôleur IdentificationController : CommandClass : Désigne le type d'objet qui servira pour stocker les données du formulaire. Ici, cela sera la classe Utilisateur qui est un POJO avec au moins les attributs login et pass de type String. FormView : Désigne le nom de la vue contenant le code du formulaire d'identification affiché sur le navigateur client. SuccessView : Désigne le nom de la vue vers laquelle sera dirigé le client en cas de validation complète des données du formulaire. Validator : Désigne la classe de validation, implémentant l'interface Validator, associé au formulaire. 3) Le contrôleur principal va automatiquement appeler la méthode handlerequest), définit dans l'interface Controller de Spring, de la classe IdentificationController. Le Validator associé au contrôleur est instancié au même moment. Lors du premier appel au formulaire, le validator est inactif. Il s'activera lors d'une tentative de soumission du formulaire par le client. Dans ce cas, on se rend directement à l'étape 11 pour renvoyer la vue de formulaire au client, le processus s'effectue comme le cas d'une page simple. Dans le cas où le formulaire a déjà été affiché sur le navigateur et que le client tente de valider le formulaire, le processus continue en étape 4. 4) Le validator exécute sa méthode validate) avec les données passées dans le formulaire. Pendant cette méthode, le validator peut si nécessaire accéder au modèle pour récupérer des données depuis la source de données. Le validator effectue généralement les contrôles suivants : Vérifie les champs vides ou requis. Vérifie la validité des informations saisies. Notre formulaire d'authentification vérifie que le champ login et le champ password sont non vides. Il vérifie aussi que le login et le password fournit correspondent à un utilisateur connu dans le modèle. AlexandreJARNOUX EPSI CSII2 9

10 Extrait du fichier 'src/identificationvalidator.java' : public class IdentificationValidator implements Validator { public void validateobject arg0, Errors arg1) { Utilisateur user = Utilisateur)arg0; /* Verifie que les champs sont remplis */ // Champs login ValidationUtils.rejectIfEmptyOrWhitespacearg1,"login", "field.required", "Ne doit pas etre vide"); // Champs password ValidationUtils.rejectIfEmptyOrWhitespacearg1,"pass", "field.required", "Ne doit pas etre vide"); /* Si pas d'erreur de saisie, on verifie que le login * et le mot de passe sont correct */ if!arg1.haserrors)) { if!su.existeutilisateuruser)) { arg1.rejectvalue"login", "bad.user", "Login ou password incorrect"); 5) La couche service fait appel à la couche DAO. 6) La couche DAO accède à la source de données et récupère les données demandées. 7) La source de données renvoie les données demandées à la couche DAO. 8) La couche DAO renvoie les données demandées à la couche service. 9) La couche service renvoie les données demandées à l'instance de la classe IdentificationValidator. 10) Le validator remplit un objet avec les erreurs, si des erreurs ont été détectées, et le renvoi à l'instance de type IdentificationController. 11) Le contrôleur IdentificationController prépare la vue. Il instancie un objet implémentant l'interface ModelAndView. Si des erreurs ont été détectées, Il prépare une vue pointant sur le formulaire, avec les données saisies dans le formulaire et les messages d'erreurs correspondants aux erreurs détectées. Sinon, il prépare une vue pointant sur la vue définie dans la propriétés 'successview' de l'identificationcontroller, ou bien la vue définie dans la propiétés 'formview' si c'est le premier affichage. Dans les trois cas, la vue générée est renvoyée au contrôleur principal. Celui-ci appelle automatiquement la méthode render) de l'instance de ModelAndView. AlexandreJARNOUX EPSI CSII2 10

11 12) Le viewresolver, défini dans le fichier de configuration de Spring, va ensuite renvoyer la page JSP approprié. Le formulaire écrit sous la forme d'une JSP, utilise une syntaxe particulière. Le framework Spring fournit une librairie de tags spécifiques pour les formulaires qui permet de réafficher facilement les messages d'erreurs. Extrait du fichier '/WEB-INF/jsp/identification.jsp' : <%@ taglib prefix="form" uri=" %> <form:form method="post"> Identification RH<br/> Login : <form:input path="login" /> <form:errors path="login" cssclass="error"/> Password : <form:password path="pass" /> <form:errors path="pass" cssclass="error"/> <input type="submit" value="valider" /> </form:form> On note que le code du formulaire est légèrement différent du code HTML classique. Les balise 'form:errors' vont permettrent d'afficher les erreurs concernant le champs désigné dans l'attribut 'path'. 13) Le navigateur du client interprète le code de la JSP renvoyée. Si le formulaire contenait des erreurs, le formulaire d'identification est affiché, dans le navigateur du client, avec les messages d'erreurs. Il peut, de nouveau, saisir les champs du formulaire et tenter de le soumettre une nouvelle fois. Sinon, la page affichée est la page désignée par l'attribut 'successview', dans notre exemple, cela sera la page d'accueil des ressources humaines. AlexandreJARNOUX EPSI CSII2 11

12 1.3.AccèsauxdonnéesavecJPAencapsuléparSpring L accès aux données dans un environnement JEE est une tâche compliquée pour le développeur. En effet, plusieurs technologies peuvent ici être mises en œuvre, et il faudra au préalablechoisircellesquel onsouhaiteutiliser,selonnosbesoins. Pourceprojetnousavonschoisid utiliserjpajavapersistenceapi),carspringoffrela possibilité de manipuler très facilement un contexte de persistance et les transactions en utilisantcettetechnologie.jpapermetdemanipulerdesejbentity,quisontdesobjetsmétiers contenant les informations de mapping objet relationnel. L association de JPA + EJB entity, encapsuléparleframeworkspring,permetdonclamiseenœuvredel'accèsauxdonnéesbasée sur le mapping objet relationnel, c est à dire que l on peut manipuler à sa guise les données métiersousformed objetsquiserontenregistrésdanslabasededonnéesparjpa Créationd'unEJBentity Un EJB entity est un Entreprise Java Bean contenant les informations de mapping sous forme d annotations Prenons pour exemple un EJB entity représentant un utilisateur : public class Utilisateur implements Serializable { generator = "SEQ_UTILISATEUR") sequencename = "SEQ_UTILISATEUR") private int private String private String private String pass; private Droit droit; private static final long serialversionuid = 1L; public Utilisateur) { super); public int getid) { return this.id; public void setidint id) { this.id = id; public String getnom) { return this.nom; AlexandreJARNOUX EPSI CSII2 12

13 public void setnomstring nom) { this.nom = nom; public String getlogin) { return this.login; public void setloginstring login) { this.login = login; public String getpass) { return this.pass; public void setpassstring pass) { this.pass = pass; public Droit getdroit) { return this.droit; public void setdroitdroit iddroit) { this.droit = iddroit; Commentaire des lignes numérotées : 1) est la première annotation indispensable. Elle se place avant la ligne qui déclare la classe et indique que la classe en question doit être gérée par la couche de persistancejpa.enl'absencedecetteannotation,touteslesautresannotationsjpaseraient ignorées. 2) désigne la table de la base de données dont la classe est une représentation. 3) l'annotation@idsertàdésignerlechampdanslaclassequiestimagedelacléprimairedela table. 4) l'annotation@columnsertàfairelelienentreunchampdelaclasseetlacolonnedelatable dontlechampestl'image. 5) l'annotation@generatedvaluesertàdéfinierlastratégiedegénérationdel id,dansnotre casonutilisedesséquencesoracle. 6) l'annotation@sequencegeneratorsertàdésignerlasequencequiserautilisée. 7) sert à désigner la relation plusieurs à un qui relie l'@entity Utilisateuràl'@EntityDroitquireprésenteledroitd accèsdel utilisateuràl application). 8) l'annotation@joincolumnsertàdésignerlechampàréférencerencléétrangère. AlexandreJARNOUX EPSI CSII2 13

14 Il convient de préalablement indiquer au serveur Tomcat, les entités à charger lors de son initialisation. Extraitdufichier'/src/META INF/persistence.xml': <persistence-unit name="irh"> <class>entities.droit</class> <class>entities.utilisateur</class> </persistence-unit> AlexandreJARNOUX EPSI CSII2 14

15 1.3.2.LacoucheDAODataAccessObject) La fonction de cette couche est de gérer les entités dans le contexte de persistance. Cela va nous permettre ensuite d effectuer toutes les actions liées L interface EntityManager permet de gérer des entités dans un contexte de persistance. Il ne faut pas la confondre avec le contexte de persistance, elle permet seulement de le manipuler. Cette interface fournit comme méthodes principales : find : qui permet de recherche une entité à partir de sa clé primaire. persist : qui permet d attacher une nouvelle entité au contexte de persistance. merge : qui permet de mettre à jour une entité détachée du contexte à jour dans le contexte de persistance remove : qui permet de supprimer une entité du contexte de persistance. flush : qui permet de synchroniser le contexte de persistance avec la base de données. createquery : qui permet de récupérer les entités d une requête. Voici un schéma récapitulatif du fonctionnement de ces méthodes : AlexandreJARNOUX EPSI CSII2 15

16 Il convient de préalablement indiquer à Spring la configuration du contexte de persistance. Extraitdufichier'/WEB INF/applicationContext.xml': <!-- couche de persistance JPA --> 1.<bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localcontainerentitymanagerfactorybean"> 2. <property name="datasource" ref="datasource" /> <property name="jpavendoradapter"> 3. <bean class="org.springframework.orm.jpa.vendor.hibernatejpavendoradapter"> <property name="databaseplatform" value="org.hibernate.dialect.oracle10gdialect" /> </bean> </property> 4. <property name="loadtimeweaver"> <bean class="org.springframework.instrument.classloading.instrumentationloadtimeweaver" /> </property> </bean> Commentaire des lignes numérotées : 1) Nomdubean. 2) SourcededonnéesàutiliserpourobtenirlaconnexionauSGBD. 3) Cette section définie l implémentation JPA à utiliser. On choisi ici de prendre Hibernate commeimplémentation.onfourniaussiledialectesqlquejpadevrautilisericiceluide Oracle10g. ExempledecoucheDAO: Lacouchedaoprésentel'interfaceIDaoUtilisateursuivante: public interface IDaoUtilisateur { Utilisateur getoneint id); void addoneutilisateur user); void updateoneutilisateur user); void deleteoneutilisateur user); List<Utilisateur> listall); boolean existeutilisateur user); L implémentationdecetteinterfaceestlasuivante: public class DaoUtilisateur implements IDaoUtilisateur { 2. private EntityManager public void addoneutilisateur user) { 3. em.persistuser); AlexandreJARNOUX EPSI CSII2 16

17 @Override public void deleteoneutilisateur user) { Utilisateur u = em.findutilisateur.class, user.getid)); if u!= null) 4. public Utilisateur getoneint id) { 5. return em.findutilisateur.class, public void updateoneutilisateur user) { 6. public boolean existeutilisateur user) { boolean existe = true; Query q = em.createquery"from Utilisateur u " + "where u.login = :login " + "and u.pass = :pass "); q.setparameter"login", user.getlogin)); q.setparameter"pass", user.getpass)); try { q.getsingleresult); catch NoResultException e) { existe = false; public List<Utilisateur> listall) { 7. Query q = em.createquery"from Utilisateur"); return List<Utilisateur>) q.getresultlist); Commentaire des lignes numérotées : 1) l'annotation demande à Spring d'injecter dans em, un gestionnairedecontextedepersistance.springgèrecelui ciàl aided unsingleton. 2) Lʼattribut em est permet de gérer le contexte de persistance. Il est instancié par lʼannotation vue plus haut. 3) Ajoute lʼutilisateur au contexte de persistance 4) Supprime lʼutilisateur du contexte de persistance. 5) Recherche une entité de type Utilsateur, selon son Id. AlexandreJARNOUX EPSI CSII2 17

18 6) Met à jour une entité dans le contexte de persistance. 7) Permet de récupérer la liste des utilisateurs. On utilise ici JPQL Java Persistence Query Language) qui permet de manipuler les objets et non les tables. AlexandreJARNOUX EPSI CSII2 18

19 1.3.3.Lacoucheservice Lafonctiondecettecoucheestd effectuerlagestiondelatransaction.seulecettecouche seraappeléeparl applicationpourgérerlesdonnées. Une transaction sera commencée avant le début d'exécution de la méthode et fermée après exécution. Si une exception, de type RuntimeException ou autre, se produit au cours de l'exécution de la méthode, un rollback automatique annule toute la transaction, sinon un commit automatique la valide. On retiendra que le code Java n'a pas besoin de se soucier des transactions.ellessontgéréesparspring. Il convient de préalablement indiquer à Spring comment effectuer la gestion des transactions. Extraitdufichier'/WEB INF/applicationContext.xml': <!-- le gestionnaire de transactions --> 1.<tx:annotation-driven transaction-manager="txmanager" /> 2.<bean id="txmanager" class="org.springframework.orm.jpa.jpatransactionmanager"> 3. <property name="entitymanagerfactory" ref="entitymanagerfactory" /> </bean> Commentaire des lignes numérotées : 1) On indique que les transactions seront définies par des annotations. Cela sert principalementpourl utilisationdel annotation@transactionalvoirplusloin). 2) Onindiquelegestionnairedetransactionquel onsouhaiteutiliser,iciungestionnairede transactionjpa. 3) Ondonnelaréférencedel entitymanagerfactoryàutiliser. Exemple de couche service: Lacoucheserviceprésentel'interfaceIServiceUtilisateursuivante: public interface IServiceUtilisateur { Utilisateur getutilisateurint id); void addutilisateurutilisateur user); void updateutilisateurutilisateur user); void deleteutilisateurutilisateur user); List<Utilisateur> listutilisateurs); boolean existeutilisateurutilisateur user); L public class ServiceUtilisateur implements IServiceUtilisateur { // Couche dao private IDaoUtilisateur daoutilisateur; public IDaoUtilisateur getdaoutilisateur) { return daoutilisateur; AlexandreJARNOUX EPSI CSII2 19

20 public void setdaoutilisateuridaoutilisateur daoutilisateur) { this.daoutilisateur = public void addutilisateurutilisateur user) { public void deleteutilisateurutilisateur user) { public Utilisateur getutilisateurint id) { return public void updateutilisateurutilisateur user) { public boolean existeutilisateurutilisateur user) { return public List<Utilisateur> listutilisateurs) { return this.daoutilisateur.listall); 1) l annotationspring@transactionalindiquequetouteslesméthodesdelaclassedoivent s'exécuterauseind'unetransaction. On peut remarque la simplicité de l implémentation de la couche service, cela grâce au FrameworkSpring. SansleFrameworkSpring,voiciunexempleducodeàécrirepourl ajoutd unutilisateur: public void addutlisateurutlisateur user) { EntityTransaction transaction = null ; try { transaction = em.gettransaction); transaction.begin this.daoutlisateur.addoneuser); transaction.commit); catch RuntimeException e) { if transaction!= null && transaction.isactive) ) transaction.rollback); AlexandreJARNOUX EPSI CSII2 20

21 2.Architecturephysique 2.1.Diagrammededéploiement AlexandreJARNOUX EPSI CSII2 21

22 3.Architectureinterne 3.1.Descriptiongénériquedespackages Commentaires: L applicationestscindéeen4packages. Lepackage«entities»regroupetouteslesEJBentitymétier. Le package «dao» regroupe tous les interfaces et implémentation DAOs Accès aux données) Le package «services» regroupe tous les interfaces et implémentation des services gestiondeservicestransactionnels) Le package «web» regroupe les contrôleurs et les validateurs associés aux différentes fonctionnalitésapplicatives.unvalidateurestassociéàcontrôleurlorsqueceluicigèreun formulairedesaisie. Note: se est le diminutif de«service Element» et de est le dimintif de«dao Element». Dans unevisionconcrèteleterme«element»serasubstituéparlesdifférentsnomsd objetsmétiers induiteparlalogiqueapplicativeex:employé,utilisateur,formation...). AlexandreJARNOUX EPSI CSII2 22

23 3.2.Schémadelabasededonnées Modèlelogiquedesdonnées AlexandreJARNOUX EPSI CSII2 23

24 3.2.2.ScriptSQLdecréationdelabase -- TABLE : DROIT CREATE TABLE DROIT ID NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_DROIT PRIMARY KEY ID) -- TABLE : UTILISATEUR CREATE TABLE UTILISATEUR ID NUMBER2) NOT NULL, ID_DROIT NUMBER2) NOT NULL, NOM VARCHAR2128) NOT NULL, LOGIN VARCHAR2128) NOT NULL, PASS VARCHAR232) NOT NULL, CONSTRAINT PK_UTILISATEUR PRIMARY KEY ID) -- TABLE : PLAN_FORMATION CREATE TABLE PLAN_FORMATION ANNEE NUMBER4) NOT NULL, CONSTRAINT PK_PLAN_FORMATION PRIMARY KEY ANNEE) -- TABLE : CIVILITE CREATE TABLE CIVILITE ID NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_CIVILITE PRIMARY KEY ID) -- TABLE : SITUATION_FAMILIALE CREATE TABLE SITUATION_FAMILIALE ID NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_SITUATION_FAMILIALE PRIMARY KEY ID) AlexandreJARNOUX EPSI CSII2 24

25 -- TABLE : SESSION CREATE TABLE SESSION ID NUMBER2) NOT NULL, ANNEE NUMBER4) NOT NULL, DATE_DEBUT DATE NOT NULL, DATE_FIN DATE NOT NULL, CONSTRAINT PK_SESSION PRIMARY KEY ID) -- TABLE : COMPETENCE CREATE TABLE COMPETENCE ID NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_COMPETENCE PRIMARY KEY ID) -- TABLE : NIVEAU_ETUDE CREATE TABLE NIVEAU_ETUDE ID NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_NIVEAU_ETUDE PRIMARY KEY ID) -- TABLE : CONTRAT CREATE TABLE CONTRAT ID NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_CONTRAT PRIMARY KEY ID) -- TABLE : FORMATION CREATE TABLE FORMATION ID NUMBER2) NOT NULL, ID_ORGANISME CHAR32) NOT NULL, ID_SESSION NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, PRIX_PAR_PERSONNE NUMBER7,2) NOT NULL, DUREE CHAR32) NOT NULL, CONSTRAINT PK_FORMATION PRIMARY KEY ID) AlexandreJARNOUX EPSI CSII2 25

26 -- TABLE : METIER CREATE TABLE METIER ID NUMBER2) NOT NULL, ID_CATEGORIE NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_METIER PRIMARY KEY ID) -- TABLE : ORGANISME CREATE TABLE ORGANISME ID CHAR32) NOT NULL, NOM VARCHAR2128) NOT NULL, DESCRIPTION VARCHAR2255) NULL, CONSTRAINT PK_ORGANISME PRIMARY KEY ID) -- TABLE : POSTE CREATE TABLE POSTE ID NUMBER2) NOT NULL, ID_METIER NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, ESTOCCUPE NUMBER1) NOT NULL, CONSTRAINT PK_POSTE PRIMARY KEY ID) -- TABLE : DIPLOME CREATE TABLE DIPLOME ID NUMBER2) NOT NULL, ID_NIVEAU NUMBER2) NOT NULL, ID_EMPLOYE NUMBER2) NOT NULL, DENOMINATION VARCHAR2128) NOT NULL, ETABLISSEMENT VARCHAR2128) NULL, ANNEE NUMBER4) NULL, CONSTRAINT PK_DIPLOME PRIMARY KEY ID) AlexandreJARNOUX EPSI CSII2 26

27 -- TABLE : EVALUATION CREATE TABLE EVALUATION ID NUMBER2) NOT NULL, ID_EMPLOYE NUMBER2) NOT NULL, DATE DATE NOT NULL, COMMENTAIRE VARCHAR2255) NULL, CONSTRAINT PK_EVALUATION PRIMARY KEY ID) -- TABLE : CATEGORIE CREATE TABLE CATEGORIE ID NUMBER2) NOT NULL, ID_THEME NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_CATEGORIE PRIMARY KEY ID) -- TABLE : EMPLOYE CREATE TABLE EMPLOYE ID NUMBER2) NOT NULL, ID_CIVILITE NUMBER2) NOT NULL, ID_SITUATION_FAMILIALE NUMBER2) NOT NULL, ID_POSTE NUMBER2) NOT NULL, NOM VARCHAR2128) NOT NULL, PRENOM VARCHAR2128) NOT NULL, TELEPHONE_PRO VARCHAR220) NULL, TELEPHONE_MOBILE VARCHAR220) NULL, TELEPHONE_PERSO VARCHAR220) NULL, FAX VARCHAR220) NULL, DATE_NAISSANCE DATE NOT NULL, VARCHAR2128) NULL, ADR_RUE VARCHAR2255) NOT NULL, ADR_CP VARCHAR210) NOT NULL, ADR_VILLE VARCHAR2128) NOT NULL, DESCRIPTION VARCHAR2255) NULL, NB_ENFANTS NUMBER2) NULL, CONSTRAINT PK_EMPLOYE PRIMARY KEY ID) -- TABLE : THEME CREATE TABLE THEME ID NUMBER2) NOT NULL, LIBELLE VARCHAR2128) NOT NULL, CONSTRAINT PK_THEME PRIMARY KEY ID) AlexandreJARNOUX EPSI CSII2 27

28 -- TABLE : NIVEAU_REQUIS CREATE TABLE NIVEAU_REQUIS ID_POSTE NUMBER2) NOT NULL, ID_COMPETENCE NUMBER2) NOT NULL, NIVEAU NUMBER1) NOT NULL, CONSTRAINT PK_NIVEAU_REQUIS PRIMARY KEY ID_POSTE, ID_COMPETENCE) -- TABLE : NIVEAU_EVAL CREATE TABLE NIVEAU_EVAL ID_EVALUATION NUMBER2) NOT NULL, ID_COMPETENCE NUMBER2) NOT NULL, NIVEAU NUMBER1) NOT NULL, CONSTRAINT PK_NIVEAU_EVAL PRIMARY KEY ID_EVALUATION, ID_COMPETENCE) -- TABLE : INSCRIPTION CREATE TABLE INSCRIPTION ID_EMPLOYE NUMBER2) NOT NULL, ID_SESSION NUMBER2) NOT NULL, ETAT VARCHAR2128) NULL, PRESENCE NUMBER1) NULL, CONSTRAINT PK_INSCRIPTION PRIMARY KEY ID_EMPLOYE, ID_SESSION) -- TABLE : NIVEAU_FORM CREATE TABLE NIVEAU_FORM ID_COMPETENCE NUMBER2) NOT NULL, ID_FORMATION NUMBER2) NOT NULL, NIVEAU NUMBER1) NOT NULL, CONSTRAINT PK_NIVEAU_FORM PRIMARY KEY ID_COMPETENCE, ID_FORMATION) AlexandreJARNOUX EPSI CSII2 28

29 -- CREATION DES REFERENCES DE TABLE ALTER TABLE EMPLOI_PRECEDENT ADD CONSTRAINT FK_EMPLOI_PRECEDENT_CONTRAT FOREIGN KEY ID_CONTRAT) REFERENCES CONTRAT ID) ALTER TABLE EMPLOI_PRECEDENT ADD CONSTRAINT FK_EMPLOI_PRECEDENT_EMPLOYE FOREIGN KEY ID_EMPLOYE) REFERENCES EMPLOYE ID) ALTER TABLE UTILISATEUR ADD CONSTRAINT FK_UTILISATEUR_DROIT FOREIGN KEY ID_DROIT) REFERENCES DROIT ID) ALTER TABLE SESSION ADD CONSTRAINT FK_SESSION_PLAN_FORMATION FOREIGN KEY ANNEE) REFERENCES PLAN_FORMATION ANNEE) ALTER TABLE FORMATION ADD CONSTRAINT FK_FORMATION_ORGANISME FOREIGN KEY ID_ORGANISME) REFERENCES ORGANISME ID) ALTER TABLE FORMATION ADD CONSTRAINT FK_FORMATION_SESSION FOREIGN KEY ID_SESSION) REFERENCES SESSION ID) ALTER TABLE METIER ADD CONSTRAINT FK_METIER_CATEGORIE FOREIGN KEY ID_CATEGORIE) REFERENCES CATEGORIE ID) ALTER TABLE POSTE ADD CONSTRAINT FK_POSTE_METIER FOREIGN KEY ID_METIER) REFERENCES METIER ID) ALTER TABLE DIPLOME ADD CONSTRAINT FK_DIPLOME_NIVEAU_ETUDE FOREIGN KEY ID_NIVEAU) REFERENCES NIVEAU_ETUDE ID) ALTER TABLE DIPLOME ADD CONSTRAINT FK_DIPLOME_EMPLOYE FOREIGN KEY ID_EMPLOYE) REFERENCES EMPLOYE ID) ALTER TABLE EVALUATION ADD CONSTRAINT FK_EVALUATION_EMPLOYE FOREIGN KEY ID_EMPLOYE) REFERENCES EMPLOYE ID) AlexandreJARNOUX EPSI CSII2 29

30 ALTER TABLE CATEGORIE ADD CONSTRAINT FK_CATEGORIE_THEME FOREIGN KEY ID_THEME) REFERENCES THEME ID) ALTER TABLE EMPLOYE ADD CONSTRAINT FK_EMPLOYE_CIVILITE FOREIGN KEY ID_CIVILITE) REFERENCES CIVILITE ID) ALTER TABLE EMPLOYE ADD CONSTRAINT FK_EMPLOYE_SITUATION_FAMILIALE FOREIGN KEY ID_SITUATION_FAMILIALE) REFERENCES SITUATION_FAMILIALE ID) ALTER TABLE EMPLOYE ADD CONSTRAINT FK_EMPLOYE_POSTE FOREIGN KEY ID_POSTE) REFERENCES POSTE ID) ALTER TABLE NIVEAU_REQUIS ADD CONSTRAINT FK_NIVEAU_REQUIS_POSTE FOREIGN KEY ID_POSTE) REFERENCES POSTE ID) ALTER TABLE NIVEAU_REQUIS ADD CONSTRAINT FK_NIVEAU_REQUIS_COMPETENCE FOREIGN KEY ID_COMPETENCE) REFERENCES COMPETENCE ID) ALTER TABLE NIVEAU_EVAL ADD CONSTRAINT FK_NIVEAU_EVAL_EVALUATION FOREIGN KEY ID_EVALUATION) REFERENCES EVALUATION ID) ALTER TABLE NIVEAU_EVAL ADD CONSTRAINT FK_NIVEAU_EVAL_COMPETENCE FOREIGN KEY ID_COMPETENCE) REFERENCES COMPETENCE ID) ALTER TABLE INSCRIPTION ADD CONSTRAINT FK_INSCRIPTION_EMPLOYE FOREIGN KEY ID_EMPLOYE) REFERENCES EMPLOYE ID) ALTER TABLE INSCRIPTION ADD CONSTRAINT FK_INSCRIPTION_SESSION FOREIGN KEY ID_SESSION) REFERENCES SESSION ID) ALTER TABLE NIVEAU_FORM ADD CONSTRAINT FK_NIVEAU_FORM_COMPETENCE FOREIGN KEY ID_COMPETENCE) REFERENCES COMPETENCE ID) ALTER TABLE NIVEAU_FORM ADD CONSTRAINT FK_NIVEAU_FORM_FORMATION FOREIGN KEY ID_FORMATION) REFERENCES FORMATION ID) AlexandreJARNOUX EPSI CSII2 30

31 3.3.Lesfonctionnementsgénériques Ce projet est composé d'une multitude d'entités métier qui reposent sur la même logique de gestion. Toutes ces entités nécessitent d'être listées, ajoutées, modifiées et supprimées. Nous allons décrire, en détail, le fonctionnement générique de ces 4 comportements Listerdeséléments AlexandreJARNOUX EPSI CSII2 31

32 Commentaires : Le client accède à une liste d'éléments à partir d'un lien dans son navigateur de ce type : ' Le serveur Tomcat reçoit la requête et passe la main à la servlet Spring. Celle-ci instancie un objet de type ListeElementController et appelle la méthode handlerequest). Cette méthode se sert du singleton IServiceElement pour demander la liste des éléments aux modèle listelement)). Ce même singleton fait appel au singleton DAO IDaoElement pour aller chercher les données dans le contexte de persistance JPA. Le DAO effectue une requête objet createquery"from Element") )pour récupérer les enregistrements de type Element par le biais de l'entity manager. Celui-ci, va interroger la base de données et injecter dans le contexte de persistance les enregistrements demandés, sous la forme d' EJBs. La liste d'enregistrement est récupérée sous la forme d'un objet Java.util.List d'element List<Element>). Cette liste est ensuite renvoyée au travers des couches DAO et service pour être récupérée dans l'objet ListeElementController. Ensuite, un nouvel objet de type ModelAndView est créé. Celui-ci sert à définir une vue View) et y attaché des données sous la forme d'une table de hachage Java.util.Map) de données Model). Cet objet ModelAndView est ensuite retourner à Spring, qui va automatiquement appelé la méthode render). Cette méthode permet de définir le type de vue généré. Dans notre cas, ce sera une JSTLView. Enfin, la JSTLView retournée est résolue par le ViewResolver de Spring qui fera correspondre la JSTLView et ses données avec la JSP associée. La JSP est finalement retournée au client. AlexandreJARNOUX EPSI CSII2 32

33 3.3.2.Ajouterunélément AlexandreJARNOUX EPSI CSII2 33

34 Commentaires : A partir d'une liste d'éléments le client possède un lien pour ajouter un élément dans la liste. Ce lien l'amène vers un formulaire composé des champs qui définissent l'élément. Le client accède à ce formulaire à partir d'un lien dans son navigateur de ce type : ' Le serveur Tomcat reçoit la requête et passe la main à la servlet Spring. Celle-ci instancie un objet de type AddElementController et appelle la méthode handlerequest). Spring appelle aussi la méthode referencedata) qui permet d'initialiser des champs de formulaire avant l'affichage de celui-ci. Par exemple, Spring peut charger les données d'une liste déroulante par le biais de cette méthode. Le formulaire est ensuite affiché, remplit et soumis par le client. La soumission d'un formulaire entraine l'exécution de la méthode validate) du Validator associé au formulaire Ce validator est facultatif). Cette méthode permet de vérifier les données et éventuellement réafficher le formulaire si des erreurs de saisie sont détectées. Tant que le validator renvoi des erreurs le formulaire n'est pas soumis. Lorsque le validator renvoie null, le formulaire est correctement rempli et est prêt à être soumis. A ce moment précis, Spring propose la méthode initbinder) pour effectuer des opérations sur l'objet renvoyé par le formulaire. On effectue généralement du transtypage sur certaines valeurs des champs du formulaire. Finalement, le code de la méthode onsubmit) est exécuté. Cette méthode définit le traitement associé au formulaire. L'objet AddElementController va par l'intermédiaire du singleton IServiceElement, du singleton DAO et de la couche JPA effectué l'ajout de l'élément dans la base de données. L'ajout de l'élément grâce à l'entity manager se traduit par un appelle à la méthode persistelem) qui va introduire l'élément dans le contexte de persistance et indirectement en base de données. Ensuite, le cheminement habituel pour retourner une vue de la liste des éléments est déroulé. AlexandreJARNOUX EPSI CSII2 34

35 3.3.3.Modifierunélément AlexandreJARNOUX EPSI CSII2 35

36 Commentaires : La modification d'un élément est très similaire au mécanisme d'ajout. La seule différence intervient juste avant l'appel à la méthode referencedata) pour initialiser le formulaire. Spring propose d'appeler la méthode formbackingobject) qui permet de récupérer dans le modèle une instance de l'objet associé au formulaire et ainsi automatiquement remplir les champs avec les précédentes valeur de l'objet à modifier. Pour que le bindage soit automatique et transparent, il faut que l'objet associé au formulaire propose des getters et setters, sur ses attributs, avec les mêmes noms que les champs de formulaire. Ensuite, le ModifElementController effectue le même type d'opération que pour l'ajout. Il intéragit avec le contexte de persistance, et effectue un mergeelem), pour mettre à jour l objet ayant la même clé id) que l objet passé en paramètre, au lieu du persistelem) dans le cas de l'ajout. Finalement, le cheminement habituel pour retourner une vue de la liste des éléments est déroulé. AlexandreJARNOUX EPSI CSII2 36

37 3.3.4.Supprimerunélément AlexandreJARNOUX EPSI CSII2 37

38 Commentaires : A partir d'une liste d'éléments le client possède un lien pour supprimer un élément de la liste. Le client donne l'ordre de suppression à partir d'un lien dans son navigateur de ce type : ' Le serveur Tomcat reçoit la requête et passe la main à la servlet Spring. Celle-ci instancie un objet de type SupprElementController et appelle la méthode handlerequest). Cette méthode prend en argument un objet de type HttpRequest et un autre de type HttpResponse. Bizarrement, pour supprimer l'élément nous allons créer un objet de type Element en mémoire et initialisé son id avec l'id de l'élément à supprimer que l'on recupére dans les paramètres GET de l'objet HttpRequest. Ensuite, On utilise la couche service, puis DAO, puis JPA pour supprimer l'élément du contexte de persistence et indirectement de la base de données. Après l'appel à removeelem) à partir de l'entity manager, il faut retourner vers la liste des éléments. On utilise la méthode sendredirect de l'objet HttpResponse pour rediriger le client sur la liste des éléments. AlexandreJARNOUX EPSI CSII2 38

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

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

1. 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étail

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.

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étail

Compte Rendu d intégration d application

Compte 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étail

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)

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) 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étail

La 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 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étail

Formation 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. 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étail

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

Avant-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étail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Création d une application JEE

Cré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étail

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

Refonte 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étail

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 10 L API JPA et la

Plus en détail

SITE WEB E-COMMERCE ET VENTE A DISTANCE

SITE WEB E-COMMERCE ET VENTE A DISTANCE Développement d une application JAVA EE SITE WEB E-COMMERCE ET VENTE A DISTANCE PLAN PROJET Binôme ou monôme (B/M): M Nom & Prénom : AIT NASSER Btissam Email : aitnasser.btissam123@gmail.com GSM : Organisme

Plus en détail

La 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 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étail

Institut 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 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étail

Mise en œuvre des serveurs d application

Mise 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étail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 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étail

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

Serveur 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étail

Cours en ligne Développement Java pour le web

Cours en ligne Développement Java pour le web Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité

Plus en détail

RMI le langage Java XII-1 JMF

RMI 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étail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

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

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

TP 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 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étail

Les frameworks au coeur des applications web

Les frameworks au coeur des applications web Les frameworks au coeur des applications web Mémoire de bachelor réalisé par : Arielle Moro Directeur de mémoire : Peter Daehne, Professeur HES Genève, le vendredi 27 août 2010, Haute Ecole de Gestion

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

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

Définition des Webservices Ordre de paiement par email. Version 1.0 Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document

Plus en détail

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

Construction d'une application MVC distribuée avec Spring Remoting. Partie 1 : HttpInvoker, Hessian, Burlap, RMI Construction d'une application MVC distribuée avec Spring Remoting Partie 1 : HttpInvoker, Hessian, Burlap, RMI serge.tahe@istia.univ-angers.fr, juillet 2005 1/54 1 Introduction Nous poursuivons ici les

Plus en détail

Projet Java EE Approfondi

Projet Java EE Approfondi EISTI Projet Java EE Approfondi Manuel d installation du framework Stripes Amaury Languillat, Yann Gonzalez, Arnaud Recher, Vincent Laronde, Anys Mechkar 10 Manuel d installation Téléchargement On part

Plus en détail

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

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION 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étail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

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

Outil de planification en ligne pour des créations de rendez-vous ou de sondage Outil de planification en ligne pour des créations de rendez-vous ou de sondage Centre de Ressources Informatiques (C.R.I.) d'orléans Université d'orléans 4-6 rue Léonard de Vinci, 45061 Orléans Cedex

Plus en détail

1/ Présentation de SQL Server :

1/ Présentation de SQL Server : Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore 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étail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Windows.................................................................

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

Module BD et sites WEB

Module 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étail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

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

SIO-65291 Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault SIO-65291 Page 1 de 5 1- Objectifs généraux Applications Web dynamiques Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault acquérir les principes et concepts fondamentaux dans le domaine d'applications

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

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

Serveur 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étail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Web Tier : déploiement de servlets

Web 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étail

Introduction à la plateforme J2EE

Introduction à la plateforme J2EE Introduction à la plateforme J2EE Auteur : Oussama Essefi Directeur technique Expert Consulting Oussama.essefi@expert-consulting.biz Copyright 2010 Expert Consulting Page 1 1. Introduction 1.1. Pourquoi

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

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

Programmation 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étail

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD 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étail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

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)

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) 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) Module 1 : Programmer une application informatique Durée

Plus en détail

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.

Plus en détail

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe 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étail

OpenPaaS Le réseau social d'entreprise

OpenPaaS 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étail

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations Projet Viticulture TP 3 : bases de données externes Description du thème Partie 1 : bases de données locales SQLite Partie 2 : projet H2O stockage local Partie 3 : bases de données distantes Partie 4 :

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers 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étail

Java pour le Web. Cours Java - F. Michel

Java 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étail

Formation en Logiciels Libres. Fiche d inscription

Formation en Logiciels Libres. Fiche d inscription République Tunisienne Ministère de l'industrie et la Technologie - Secrétariat d'état de la Technologie Unité des Logiciels Libres Formation en Logiciels Libres Fiche d inscription (Une fiche par candidat)

Plus en détail

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

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

Application de lecture de carte SESAM-Vitale Jeebop

Application de lecture de carte SESAM-Vitale Jeebop Application de lecture de carte SESAM-Vitale Jeebop Présentation Le module de lecture de carte SESAM-Vitale Jeebop est une application Java Web Start, c'est à dire une application Java qui se télécharge

Plus en détail

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

Auto-évaluation Aperçu de l architecture Java EE Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU

Plus en détail

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

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE Flex Lire les données de manière contrôlée 1 Plan Lier les données Stocker les données Valider les données 2 Gérer des données Lier des données La notion de DataBinding est l une des plus importantes du

Plus en détail

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,

Plus en détail

EJB3.1 - ORM - Object-Relational Mapping

EJB3.1 - ORM - Object-Relational Mapping EJB3.1 - ORM - Object-Relational Mapping Chapitres traités Association d'une entité Durant cette étude, nous passerons en revue les bases des ORM (Object-Relational Mapping), qui consistent essentiellement

Plus en détail

Java DataBaseConnectivity

Java 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étail

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application On souhaite réaliser la connexion d'un programme avec des sources de données Ici, des bases de données relationnelles Deux approches sont possibles qui mettent en œuvre chacune son propre jeu de classes

Plus en détail

Etude de cas : PGE JEE V2

Etude de cas : PGE JEE V2 Arrivés à ce point du tutoriel, nous savons créer une application Web implémentant la persistance des données. Toutefois, le modèle de cette application était simple et composé d'une unique classe et les

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

Plus en détail

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr Auteur du document : ESRI France Version de la documentation : 1.2.0.0 Date de dernière

Plus en détail

JavaServer Pages (JSP)

JavaServer 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étail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

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

Architecture 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étail

.NET - Classe de Log

.NET - Classe de Log .NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

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

Création d un service web avec NetBeans 5.5 et SJAS 9 Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...

Plus en détail

Programmer 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) 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étail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

Authentification avec CAS sous PRONOTE.net 2011. Version du lundi 19 septembre 2011

Authentification avec CAS sous PRONOTE.net 2011. Version du lundi 19 septembre 2011 1 Authentification avec CAS sous PRONOTE.net 2011 Version du lundi 19 septembre 2011 2 1 - Vocabulaire employé et documentation... 3 1.1 - SSO (Single Sign-On)... 3 1.2 - CAS (Central Authentication Service)...

Plus en détail

Modé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 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étail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

Plus en détail

Sage CRM. 7.2 Guide de Portail Client

Sage CRM. 7.2 Guide de Portail Client Sage CRM 7.2 Guide de Portail Client Copyright 2013 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13 WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels

Plus en détail

Documentation CAS à destination des éditeurs

Documentation 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étail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

Gestion de base de données

Gestion de base de données Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505

Plus en détail

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

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail