Génie logiciel. Intranet Ressources Humaines. Dossier de conception. François COJEAN Alexandre JARNOUX EPSI CSII 2 1
|
|
- Basile Clermont
- il y a 8 ans
- Total affichages :
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 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é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étailTP 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é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é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é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é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é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étailTypes 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é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é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étailEuropa. 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étailSITE 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é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é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é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é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é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étailCours 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é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étailCré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étailPour 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étailDossier 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é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étailLes 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étailPlateforme 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étailDé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étailConstruction 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étailProjet 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étailIntroduction à 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é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étailJava 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étailOutil 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étail1/ 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étailTutoriel 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étailCours 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étailArchitecture 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é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étailE-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étailStockage 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é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étailIntroduction 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étailSIO-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étailBases 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étailEncapsulation. 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é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étailChapitre 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é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étailIntroduction à 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étailProjet 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é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é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étailPHP 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étailOlivier 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étailProgramme «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étailPRODIGE 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é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é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étailProjet 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étailMessagerie 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é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é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étailFormation 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étailTutoriel: 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étailApplication 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étailAuto-é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étailFlex. 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étailet 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étailEJB3.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é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étailConnexion à 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étailEtude 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étail1. 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étailarcopole 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é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étailPaginer 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étailEnvironnements 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é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étail.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étailGé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étailManuel 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étailCré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é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étailPHP 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étailAuthentification 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é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étail24/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étailDOSSIER 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étailSage 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étailCOMMANDES 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étailWEBSERVICES. 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é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étailProjet 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étailGestion 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étailDevenez 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étailCREATION 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étailPHP 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