Java - J2EE Java Server Pages (JSP)

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

Download "Java - J2EE Java Server Pages (JSP)"

Transcription

1 WIDLOCHER Antoine GREYC CNRS UMR Java - J2EE Java Server Pages (JSP) Antoine WIDLÖCHER Master MI3 - M2 Université de Caen 20 mars 2008

2 WIDLOCHER Antoine GREYC CNRS UMR Plan Principes Structure d'une page JSP Eléments de syntaxe éléments de script directives actions Expression Language (EL) Utilisation des beans

3 WIDLOCHER Antoine GREYC CNRS UMR Plan Documents JSP (JSPX) syntaxe équivalences JSP/JSPX Tag librairies Principes JSTL JSTL Core JSTL XML

4 WIDLOCHER Antoine GREYC CNRS UMR Plan Principes

5 WIDLOCHER Antoine GREYC CNRS UMR Pages JSP Objectif une manière «déclarative» pour écrire dynamiquement des servlets Principes la page JSP définit les éléments de la servlet le «corps» la méthode de «service» à l'aide d'échappements dans du code statique XML, HTML... le container de servlets construit la servlet rendue accessible comme une servlet quelconque

6 WIDLOCHER Antoine GREYC CNRS UMR Principes Client 1 Page JSP Client 2 Client 3 Servlet.class Servlet.java... Client n Servlet Servlet Container (Tomcat...)

7 WIDLOCHER Antoine GREYC CNRS UMR Plan Structure d'une page JSP

8 WIDLOCHER Antoine GREYC CNRS UMR Page JSP Un page contient du code statique (HTML...) des échappements JSP contenant les indications de construction de la servlet <html> </html> <body> Afficher la valeur paramètre blah: <%= request.getparameter("blah") %> </body>

9 WIDLOCHER Antoine GREYC CNRS UMR Page JSP La page JSP sera convertie en Servlet Rappel: lors du premier appel cf. $CATALINA_HOME/work/.../org/apache/jsp la méthode principale d'une servlet est la méthode dite «service method» (dopost, doget...) cette méthode possède deux arguments: une requête une réponse Le contenu statique de la page sera écrit tel quel sur la sortie, par la service method

10 WIDLOCHER Antoine GREYC CNRS UMR Page JSP Différents type d'eléments possibles: les directives relatives au fonctionnement général de la servlet les éléments de scripts code java à intégrer au code la servlet les actions définissent les relations avec les «objets» existants paramètrent le fonctionnement du container

11 WIDLOCHER Antoine GREYC CNRS UMR Plan Eléments de syntaxe JSP

12 WIDLOCHER Antoine GREYC CNRS UMR Plan Eléments de script

13 WIDLOCHER Antoine GREYC CNRS UMR Scriptlets Eléments de script dont le contenu est ajouté au corps de la service method <% ducodejava %> <% String resume = ''Du texte, du texte, du texte, du texte, du texte.''; %> <html> </html> <body> Le résumé: <%= resume %> </body>

14 WIDLOCHER Antoine GREYC CNRS UMR Scriptlets Une même bloc d'instructions peut s'étendre sur plusieurs échappements <html> <body> <% %> <% for(int i=0; i<13; i++) { <span class=''number''><%= i %></span> } %> </body> </html>

15 WIDLOCHER Antoine GREYC CNRS UMR Expressions Expressions dont le contenu est affiché tel quel par la service method par le biais de son objet Response après évaluation et appel à tostring() <%= uneexpression %> <html> </html> <body> Un calcul idiot <%= %> Sur le serveur, nous sommes le <%= java.util.calendar.getinstance().get(java.util.calendar.day_of_month) %> </body>

16 WIDLOCHER Antoine GREYC CNRS UMR Implicit objects Scriplets et expressions sont au coeur de la service method et peuvent accéder à un certain nombre de variables prédéfinies correspondantes: request (HttpServletRequest) response (HttpServletResponse) session (HttpSession) out (PrintWriter) application (ServletContext)... <body> <% %> </body> String leparametre = request.getparameter(''leparametre''); out.println(leparametre);

17 WIDLOCHER Antoine GREYC CNRS UMR Implicit objects Utilisables par exemple pour les sessions note: la session est partagée par servlets et JSP elle est la relation entre l'application web et le client <html> </html> <body> Votre panier: <% Panier panier = (Panier)session.getAttribute(''panier''); if(panier!= null) out.println(panier); %> </body>

18 WIDLOCHER Antoine GREYC CNRS UMR Implicit objects Idem avec le ServletContext contexte commun à tous les éléments de l'application web représenté ici par la variable application <html> </html> <body> Le catalogue: <% Catalogue cat = (Catalogue)application.getAttribute(''catalogue''); if(cat!= null) out.println(cat); %> </body>

19 WIDLOCHER Antoine GREYC CNRS UMR Expression Language (EL) JSP 2.0 introduit un language permettant l'évaluation d'expressions l'accès simplifié à certaines informations accessibles en différents lieux (session, contexte...) en particulier en provenance des beans Syntaxe de base: ${objet.propriété} ${map[élément]} ou ${map.élément} Utilisable dans le contenu statique dans un attribut de tag autorisant la présence d'une expression

20 WIDLOCHER Antoine GREYC CNRS UMR Expression Language Un ensemble d'objets implicites est défini param: Map des paramètres associés à la requête pagescope: Map des éléments dont la portée est la page requestscope: dont la portée est la requête sessionscope: dont la portée est la session applicationscope: dont la portée est l'application <html> <body> Nom: ${sessionscope.user.name} <br /> Catalog size: <%=((Catalog)application.getAttribute("catalog")).getProductCount() %><br /> Catalog size (bis): ${applicationscope.catalog.disccount}<br /> Paramètre 'leparametre': ${param['leparametre']} <br /> Param 'leparametre': ${param.leparametre} <br /> </body> </html>

21 WIDLOCHER Antoine GREYC CNRS UMR Exemples d'expression ${param['leparametre']} la valeur du paramètre ${param.leparametre} la valeur du paramètre ${empty param.leparametre} true si le paramètre vaut null ou chaîne vide ${4 > 3} true ${param.leparametre > 3} true si la valeur du paramètre > 3 ${monbean.lapropriété} la valeur de la propriété du bean (cf. ci-après) ${sessionscope.objet.lapropriété} la valeur de la propriété de l'objet présent dans la session

22 WIDLOCHER Antoine GREYC CNRS UMR Déclarations Déclarations dont le contenu est ajouté au corps de la servlet elle-même peut être une méthode en particulier jspinit() qui correspond au init() de la servlet <%! ducodejava %> <%! int nombredevisiteurs = 0; %> <% nombredevisiteurs++; %> <html> </html> <body> Vous êtes le <%= nombredevisiteurs %> ème visiteur. </body>

23 WIDLOCHER Antoine GREYC CNRS UMR Plan Directives

24 WIDLOCHER Antoine GREYC CNRS UMR Directives relatives à la page Directives de configuration relatives à la page attribut= ''valeur'' %> où attribut peut être également: contenttype="text/html"%> pageencoding="utf-8"%> <html> <body> Blah blah blah blah. </body> </html> import= ''java.util.*'' extends=''package.laclasse'' session=''true/false'' contenttype=''text/html'' pageencoding=''utf-8''...

25 WIDLOCHER Antoine GREYC CNRS UMR Directives d'inclusion Directives d'inclusion à la compilation et non lors de l'invocation de la servlet file=''url'' %> html/head.inc.html <html> file="html/head.inc.html" %> <body> Blah blah blah blah blah </body> <head> <title>test divers</title> </head> </html>

26 WIDLOCHER Antoine GREYC CNRS UMR Plan Actions

27 WIDLOCHER Antoine GREYC CNRS UMR Action d'inclusion Action d'inclusion parfois limitée à JSP et HTML (selon la configuration) lors de l'exécution et non lors de la compilation <jsp:include page=''chemin'' /> html/head.inc.html <html> <jsp:include page="html/head.inc.html" /> <body> Blah blah blah blah blah </body> <head> <title>test divers</title> </head> </html>

28 WIDLOCHER Antoine GREYC CNRS UMR Action de redirection Rediriger une requête vers une autre page par exemple à l'issue d'un traitement <jsp:forward page=''chemin'' /> <%-- un traitement quelconque --%> <jsp:forward page=''index.jsp'' />

29 WIDLOCHER Antoine GREYC CNRS UMR Action de redirection Lors d'un forward l'objet ''Request'' est transmis les paramètres reçus le sont donc également Il est possible d'ajouter des paramètres <%-- un traitement quelconque --%> <jsp:forward page=''index.jsp''> <jsp:param name="leparametre" value="savaleur" /> </jsp:forward>

30 WIDLOCHER Antoine GREYC CNRS UMR Actions relatives aux Beans Pour la maniulation des Java Beans jsp:usebean jsp:setproperty jsp:getproperty Cf. ci-après

31 WIDLOCHER Antoine GREYC CNRS UMR Plan Autres...

32 WIDLOCHER Antoine GREYC CNRS UMR Commentaires Ne pas confondre les commentaires JSP, du même niveau que les échappements les commentaires Java, à l'intérieur des échappements <%-- le commentaire JSP --%> <% %> // le commentaire Java

33 WIDLOCHER Antoine GREYC CNRS UMR Plan Java Beans

34 WIDLOCHER Antoine GREYC CNRS UMR Rappels sur les Java Beans Un Java Bean est un objet quelconque disposant d'un constructeur par défaut d'accesseurs bien formés pour ses propriétés pour une propriété X de type XType (le nom de l'attribut est indifférent) void setx(xtype x) XType getx() Il est ainsi possible de connaître les propriétés des objets par introspection

35 WIDLOCHER Antoine GREYC CNRS UMR Beans et JSP L'utilisation des Beans avec JSP permet d'automatiser la mise en relation entre un objet un formulaire i.e. entre les valeurs des paramètres des champs du formulaire les propriétés des objets et de manipuler simplement de tels objets et leurs propriétés

36 WIDLOCHER Antoine GREYC CNRS UMR Accès à un bean Pour accéder à un bean on utilise l'action jsp:usebean en précisant entre autres sa classe un identifiant utilisable par la suite une portée (scope) pouvant être entre autres page session application <jsp:usebean id=''nomdubean'' scope=''page'' class=''nomcomplet.du.bean'' />

37 WIDLOCHER Antoine GREYC CNRS UMR Accès à un bean La portée définit la visibilité du bean sa durée de vie potentiellement au-delà de la page S'il n'existe aucun bean de même id de même portée il est instancié au besoin Sinon on utilise le bean existant ce qui permet le partage d'un même bean dans l'application

38 WIDLOCHER Antoine GREYC CNRS UMR Accès aux propriétés Pour accéder aux propriétés du bean on utilise les actions jsp:setproperty jsp:getproperty <jsp:setproperty name=''nomdubean'' property=''prop'' value=''val'' /> <jsp:setproperty name=''nomdubean'' property=''prop'' param=''fromrequest'' /> <jsp:setproperty name=''nomdubean'' property=''*'' /> <jsp:getproperty name="nomdubean" property="nomdelapropriété" />

39 WIDLOCHER Antoine GREYC CNRS UMR Accès aux propriétés Récupération des données de formulaire soit manuellement on définit le mapping à la main entre nom de propriétés et paramètres soit automatiquement les noms doivent correspondre processform.jsp <jsp:usebean id="user"... /> <form action='processform.jsp'> Nom: <input type="text" name="name" /> <input type="submit" name="valider" /> </form> <jsp:setproperty name="user" property="name" param="name" /> <jsp:setproperty name="user" property="*" />

40 WIDLOCHER Antoine GREYC CNRS UMR Accès au propriétés Pour récupérer la valeur d'une propriété il suffit de préciser le nom du bean le nom de la propriété <html> <body> <jsp:usebean id="user" scope="session" class="fr.unicaen.mi3.userbean"/> <jsp:setproperty name="user" property="name" value="jean" /> nom: <jsp:getproperty name="user" property="name" /> </body> </html>

41 WIDLOCHER Antoine GREYC CNRS UMR Accès au bean Il est également possible d'accéder directement au bean en y faisant simplement référence par le nom donné par l'attribut ''id'' de l'action jsp:usebean <html> <body> <jsp:usebean id="user" scope="session" class="fr.unicaen.mi3.userbean"/> <jsp:setproperty name="user" property="name" value="jean" /> nom: <%=user.getname()%> </body> </html>

42 WIDLOCHER Antoine GREYC CNRS UMR Plan JSP Documents

43 WIDLOCHER Antoine GREYC CNRS UMR JSP Documents Un JSP Document est une page JSP écrite en respectant la syntaxe XML i.e. devant être bien formé pas de chevauchement une racine unique... utilisant les tags JSP correspondant aux différents éléments dont l'extension est.jspx

44 WIDLOCHER Antoine GREYC CNRS UMR Equivalences <%-- comment --%> <!-- comment --> <%= expression --%> <jsp:expression> declaration </jsp:expression> <%! declaration --%> <jsp:declaration> declaration </jsp:declaration> <% scriptlet --%> <jsp:scriptlet> declaration </jsp:scriptlet> page directive --%> <jsp:directive.page... /> include directive --%> <jsp:directive.include... /> taglib directive --%> xmlns:préfixe=''url''

45 WIDLOCHER Antoine GREYC CNRS UMR Exemple <html xmlns:c=" > <head>...</head> <body> <form method="get"> <input type="text" name="username" /> <input type="submit" value="submit" /> </form> <jsp:usebean id="userbean" class="fr.unicaen.mi3.userbean" scope="session"/> <jsp:setproperty name="usernamebean" property="name" value="${param.username}" /> </body> </html>

46 WIDLOCHER Antoine GREYC CNRS UMR JSP Documents On peut «produire» le XML de sortie à l'aide d'un ensemble d'éléments JSP jsp:element jsp:attribute jsp:body jsp:text et éventuellement produire dynamiquement les «noms» des objets

47 WIDLOCHER Antoine GREYC CNRS UMR Exemple <?xml version="1.0" encoding="utf-8"?> <jsp:root xmlns:jsp=" version="2.0"> <jsp:directive.page contenttype="text/xml;charset=utf-8"/> <jsp:element name="html"> <jsp:body> <jsp:element name="body"> <jsp:body> <jsp:element name="div"> <jsp:attribute name="class">madiv</jsp:attribute> <jsp:body> Le contenu </jsp:body> </jsp:element> </jsp:body> </jsp:element> </jsp:body> </jsp:element> </jsp:root>

48 WIDLOCHER Antoine GREYC CNRS UMR Exemple <?xml version="1.0" encoding="utf-8"?> <jsp:root xmlns:jsp=" version="2.0"> <jsp:directive.page contenttype="text/xml;charset=utf-8"/> <jsp:element name="${param.rootname}"> <jsp:body> <jsp:element name="body"> <jsp:body> <jsp:element name="div"> <jsp:attribute name="class">madiv</jsp:attribute> <jsp:body> Le contenu </jsp:body> </jsp:element> </jsp:body> </jsp:element> </jsp:body> </jsp:element> </jsp:root>

49 WIDLOCHER Antoine GREYC CNRS UMR Plan Tag Libraries Java Server Pages Standard Tag Library (JSTL)

50 WIDLOCHER Antoine GREYC CNRS UMR TagLib Une TagLib est un ensemble de tags permettant d'encapsuler certaines tâches redondantes Provenance on peut développer ses propres custom tags utiliser des librairies fournies par des tiers utiliser la librairie standard JSTL Pour utiliser une taglib, on doit déclarer cette lib s'assurer qu'une implémentation est disponible

51 WIDLOCHER Antoine GREYC CNRS UMR JSTL La JavaServer Pages Standard Tag Library offre un ensemble de fonctionnalités standard pour la manipulation d'iterations de traitements conditionnels la manipulation de documents XML l'accès SQL à des SGBD... Pour pouvoir les utiliser l'application web doit disposer d'une implémentation de cette librairie standard soit pour elle seule soir pour le serveur d'application dans son ensemble

52 WIDLOCHER Antoine GREYC CNRS UMR Mise en oeuvre choix d'une implémentation: version pour l'utiliser localement ie pour notre application web on place les jar jstl.jar standard.jar dans WEB-INF/lib/ dans les pages JSP concernées on déclare les libs à utiliser avec: xmlns:prefixe=''uri de la lib''

53 WIDLOCHER Antoine GREYC CNRS UMR URIs Core: XML: Internationalization: SQL: Functions:

54 WIDLOCHER Antoine GREYC CNRS UMR Plan JSTL: Core (quelques tags)

55 WIDLOCHER Antoine GREYC CNRS UMR Variables le tag set permet de donner une valeur à une variable EL à une proriété d'une variable EL en précisant sa portée <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" <c:set var=''username'' scope=''session'' value=''jean'' /> <body> ${username} </body> </html>

56 WIDLOCHER Antoine GREYC CNRS UMR Variables pour pouvoir accéder à une variable EL depuis un élément de script on doit utiliser l'élément jsp:usebean pour déclarer une variable de script équivalente <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" <c:set var=''username'' scope=''session'' value=''jean'' /> <body> ${username} <jsp:usebean id="username" scope="session" type="java.lang.string" /> <jsp:scriptlet> out.println(username); </jsp:scriptlet> </body> </html>

57 WIDLOCHER Antoine GREYC CNRS UMR Traitements conditionnels Le tag if permet un traitement conditionnel <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" <body> <c:if test="${!empty param.affichebonjourlemonde}"> Bonjour le monde! valeur du param: ${param.affichebonjourlemonde} </c:if> </body> </html>

58 WIDLOCHER Antoine GREYC CNRS UMR Traitements conditionnels les tag choose, when et otherwise permettent un switch <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" <body> <c:choose> <c:when test="${param.prenom == 'jean'}" > Salut. </c:when> <c:when test="${param.prenom == 'john'}" > Hello. </c:when> <c:otherwise> Bonjour. </c:otherwise> </c:choose> </body> </html>

59 WIDLOCHER Antoine GREYC CNRS UMR Iterations Le tag foreach permet d'itérer sur des collections Collection Map (chaque item est alors un couple key/value) Iterator (peu recommandé car pas de reset) Enumeration (peu recommandé car pas de reset) tableaux String du type ''a,b,c,d,e'' <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" <body> <c:foreach var="disc" items="${applicationscope.catalog.discs}"> ${disc} <br /> ${disc.title} <br /> </c:foreach> </body> </html>

60 WIDLOCHER Antoine GREYC CNRS UMR URL le tag import permet de récupérer une ressource désignée par son URL et éventuellement un ensemble de paramètres précisés à l'aide du sous-tag <prefixe:param name=''nom'' value=''valeur''/> <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" <body> <c:import url="/config/menu.xml" var="xml" /> <!-- on pourra par exemple parser la ressource --> </body> </html>

61 WIDLOCHER Antoine GREYC CNRS UMR Plan JSTL: XML (quelques tags)

62 WIDLOCHER Antoine GREYC CNRS UMR JSTL: XML La taglib XML permet de manipuler des ressources XML d'accéder à leur contenu à l'aide d'expressions XPath d'opérer certaines transformations Les expressions XPath sont localisées dans les attributs ''select'' et peuvent accéder à certaines informations de l'application: $unevariable $param: $pagescope: $sessionscope: $applicationscope:

63 WIDLOCHER Antoine GREYC CNRS UMR Expressions XPath Exemples d'expressions XPath intégrant l'accès à des données de l'application web $unnoeudxml/fils $applicationscope:uneressourcexml/racine/fils $applicationscope:uneressourcexml/racine/fils[id=$param:filsid] $applicationscope:uneressourcexml/racine/fils[id=$pagescope:objet.propriété]

64 WIDLOCHER Antoine GREYC CNRS UMR Exemple de fichier XML Pour la suite on utilise un fichier XML de la forme suivante <?xml version="1.0" encoding="utf-8"?> <menu> <item id="1"> <name>catégorie 1</name> <url>urlcatégorie1</url> </item> <item id="2"> <name>catégorie 2</name> <url>urlcatégorie2</url> </item> </menu>

65 WIDLOCHER Antoine GREYC CNRS UMR Parser un document XML le tag parse permet de parser un document xml importé à l'aide du JSTL core tag import placé dans une variable dont la portée est indiquée <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" xmlns:x=" <body> <c:import url="/config/menu.xml" var="xmlfile" /> <x:parse doc="${xmlfile}" var="menu" scope="application" /> </body> </html>

66 WIDLOCHER Antoine GREYC CNRS UMR Accéder au contenu Les tags set et out permettent de récupérer des éléments du contenu XML de les afficher <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" xmlns:x=" <body> <c:import url="/config/menu.xml" var="xmlfile" /> <x:parse doc="${xmlfile}" var="menu" scope="application" /> <x:set var="firstitem" /> FirstItem Name: <x:out select="$firstitem/name" /> </body> </html>

67 WIDLOCHER Antoine GREYC CNRS UMR Itération Le tag foreach (de cette librairie) permet d'itérer sur certains éléments XML vérifiant un pattern donné par une expression XPath <?xml version="1.0" encoding="utf-8"?> <html xmlns:c=" xmlns:x=" <body> <c:if test="${applicationscope.menu == null}"> <c:import url="/config/menu.xml" var="xmlfile"/> <x:parse doc="${xmlfile}" var="menu" scope="application" /> </c:if> <x:foreach var="item" select="$applicationscope:menu/menu/item"> Nom de l'item: <x:out select="$item/name" /> Url de l'item: <x:out select="$item/url" /> </x:foreach> </body> </html>

68 WIDLOCHER Antoine GREYC CNRS UMR Plan JSTL: FMT (quelques tags)

69 WIDLOCHER Antoine GREYC CNRS UMR JSTL: FMT La taglib FMT Principe simplifie l'internationalisation des applications la localisation et le formatage (fmt) des données à la lumière de ResourceBundles d'une Locale le ResourceBundle définit un ensemble de «clefs» de messages et différentes valeurs de ces messages en fonction des langues et des pays la Locale précise la langue attendue par l'utilisateur les pages JSP ne font référence qu'à des clefs

70 WIDLOCHER Antoine GREYC CNRS UMR ResourceBundle Le ResourceBundle désigne un ensemble de fichiers *.properties contenant les messages internationalisés Chaque fichier contient les messages liés à une langue (et un code de pays) la langue et le code pays sont précisés par le nom selon le schéma: MyMessages_langue_PAYS.properties par ex: MyMessages_en.properties MyMessages_fr_CA.properties (français du Canada) MyMessages_fr_FR.properties Messages_en.properties # home page home.title=welcome home.links.search=search Messages_fr_FR.properties # home page home.title=bienvenue home.links.search=rechercher

71 WIDLOCHER Antoine GREYC CNRS UMR Utilisation le ResourceBundle (ie les différents fichiers *.properties) sont présents dans le classpath Rq: ne pas oublier de les placer dans le WAR on précise la Locale souhaitée localement (page, session...) ou pour l'ensemble de l'applic par défaut la Locale demandée par le client web sera utilisée on précise quel ResourceBundle on souhaite utiliser localement (page, session...) ou pour l'ensemble de l'applic on fait appel aux clefs des messages qu'on souhaite afficher à l'aide des tags dédiés

72 WIDLOCHER Antoine GREYC CNRS UMR Utilisation <fmt:setlocale> permet de préciser la locale <fmt:setbundle> permet de préciser le bundle <fmt:message> permet d'afficher un message <?xml version="1.0" encoding="utf-8"?> <jsp:root xmlns:jsp=" version="2.0" xmlns:fmt=" <fmt:setlocale value="fr_fr" scope="session" /> <fmt:setbundle basename="fr.unicaen.mi3.bookstore.ui" /> <html> <head><title><fmt:message key="home.title" /></title></head>... </jsp:root>

73 WIDLOCHER Antoine GREYC CNRS UMR web.xml on peut préciser locale et bundle globalement pour l'ensemble de l'application via le web.xml valeurs qui pourront être différentes localement <!-- RessourceBundle utilisé --> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.localizationcontext</param-name> <param-value>fr.unicaen.mi3.bookstore.ui</param-value> </context-param> <!-- Locale (si celle demandée par le browser n'est pas supportée)--> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.fallbacklocale</param-name> <param-value>en</param-value> </context-param> <!-- Locale fixée quelle que soit la demande du browser --> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.locale</param-name> <param-value>en</param-value> </context-param>

74 WIDLOCHER Antoine GREYC CNRS UMR Passages de paramètres Les messages du bundle peuvent être «paramétrés» en fonction du contexte au moment de leur invocation Messages_fr_FR.properties # home page home.welcome=bienvenue Mr {0}. Votre est: {1} <?xml version="1.0" encoding="utf-8"?> <jsp:root xmlns:jsp=" version="2.0" xmlns:fmt=" <html> <body> <fmt:message key="home.welcome"> <fmt:param value="${sessionscope.user.name}"/> <fmt:param value="${sessionscope.user. }"/> </fmt:message> </body> </html> </jsp:root>

75 Dates La taglib FMT Principe prend par ailleurs en charge le formatage des dates en fonct des conventions propres à chaque langue/pays en fonction d'un fuseau horaire particulier on définit une java.util.timezone ex: GMT+2, Europe/Paris on récupère un objet java.util.date éventuellement en parsant une chaîne représentant cette date et en précisant le motif de cette représentation on affiche les éléments de la date en tenant compte de la TimeZone et de la Locale ex: 1 mai 2007 (fr) / May 1, 2007 (en) WIDLOCHER Antoine GREYC CNRS UMR

76 WIDLOCHER Antoine GREYC CNRS UMR Détermination de la TimeZone La java.util.timezone peut être définie globalement dans le web.xml localement, en précisant une portée (scope) localement, pour un ensemble donné d'instructions Dans le web.xml <!-- TimeZone --> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.timezone</param-name> <param-value>gmt</param-value> <!-- <param-value>europe/paris</param-value> --> </context-param>

77 WIDLOCHER Antoine GREYC CNRS UMR Détermination de la TimeZone Localement en spécifiant une portée <jsp:root xmlns:jsp=" version="2.0" xmlns:fmt=" </jsp:root> <fmt:settimezone value="europe/paris" scope="session" /> <!-- affichage des données de dates, etc. --> Localement pour un jeu d'instructions <jsp:root xmlns:jsp=" version="2.0" xmlns:fmt=" </jsp:root> <fmt:timezone value="gmt"> <!-- affichage des données de dates, etc. --> </fmt:timezone>

78 WIDLOCHER Antoine GREYC CNRS UMR Récupération de la date On peut utiliser directement java.util.date <jsp:root xmlns:jsp=" version="2.0" xmlns:fmt=" </jsp:root> <jsp:usebean id="now" class="java.util.date" /> <!-- affichage des données de dates, etc. --> ou parser une chaîne de caractères motif exprimé dans la syntaxe java.text.simpledateformat <jsp:root xmlns:jsp=" version="2.0" xmlns:fmt=" </jsp:root> <fmt:parsedate value="01/05/2007" pattern="dd/mm/yyyy" var="now"/> <!-- affichage des données de dates, etc. -->

79 WIDLOCHER Antoine GREYC CNRS UMR Affichage de la date le tag <fmt:formatdate> permet d'afficher une date ou de la stocker dans une variable en précisant le éléments de la date devant être affichés date, heure, date et heure (type=[date time both]) les styles d'affichage de la date et de l'heure [timestyle datestyle]=[default short medium long full]) dont le résultat dépend de la locale <jsp:root xmlns:jsp=" version="2.0" xmlns:fmt=" </jsp:root> <fmt:formatdate type="both" value="${now}" datestyle="full" timestyle="full"/>

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

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

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

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

Le développement d applications Web

Le développement d applications Web Le développement d applications Web Plan Principes des applications Web Origine et utilité des Servlets Présentation des Servlets Les JSP La Standard TAG Library Servlet, JSP et accès aux SGBD Les technologies

Plus en détail

Le stockage local de données en HTML5

Le stockage local de données en HTML5 Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,

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

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

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

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

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

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

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Utilisation de Jakarta Tomcat

Utilisation de Jakarta Tomcat ISI 1022 : Déploiement d applications Web Jean-Noël Sorenti. Année 2002/2003 Déploiement d application Web Utilisation de Jakarta Tomcat ISI 1022 : 1 ISI 1022 : Déploiement d applications Web Une application

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Jahia CMS ET Portal Version 5.0

Jahia CMS ET Portal Version 5.0 Jahia CMS ET Portal Version 5.0 Développer un portlet JSR168 Avec Jahia CMS et Portal Version 5.0 V.1 Français Jahia Ltd Suisse 9, route des jeunes 1227 Carouge p. 2/47 TERMES ET CONDITIONS D UTILISATION

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ...

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ... HTTP 1.1 Place de http dans le modèle osi : HyperText Transfer Protocol...... TCP IP...... HTTP est un protocole «sans état» : chaque page WEB est transmise dans une connexion séparée (sauf pour les connections

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en dé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

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

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

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

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

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

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

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

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en dé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

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

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

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

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

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

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Création d objet imbriqué sous PowerShell.

Création d objet imbriqué sous PowerShell. Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.

Plus en détail

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

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Groupe Eyrolles, 2005, ISBN : 2-212-11406-0

Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 10 L atelier MyEclipse Eclipse facilite considérablement le développement Java en équipe. Son puissant éditeur, associé à des fonctionnalités de complétion de

Plus en dé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

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans

Plus en détail

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Les architectures 3-tiers Partie I : les applications WEB

Les architectures 3-tiers Partie I : les applications WEB Les architectures 3-tiers Partie I : les applications WEB 1 Evolutions logicielles Des objets aux composants... Objets JavaBeans, Objets ActiveX, Objets COM,... 1 Evolutions logicielles Des objets aux

Plus en détail

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 6 : le paquetage (package) Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett 1 Définition - Les classes Java sont regroupées

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

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

JOnAS Day 5.1. Outils de développements

JOnAS Day 5.1. Outils de développements JOnAS Day 5.1 Outils de développements Agenda Introduction Plugin Eclipse (JOPE) Plugin NetBeans (JOnbAS) Cargo 2 Bull, 2009 JOnAS Day 5.1 Objectifs - Réduire les temps de développement - Construction

Plus en détail

Authentification et contrôle d'accès dans les applications web

Authentification et contrôle d'accès dans les applications web Authentification et contrôle d'accès dans les applications web Quelques Rappels Objectifs : contrôler que seulement Certains utilisateurs Exécutent certaines opérations Sur certains objets Trois entités

Plus en détail

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Déployer les Fonts, Icones, et Images avec Forms Services 11G Déployer les Fonts, Icones, et Images avec Forms Services 11G 1. Le fichier Registry.dat Le fichier Registry.dat permet de gérer les correspondances de font entre celles utilisées pour le développement

Plus en détail

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

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT DOCUMENTATION CAS A DESTINATION DES SERVICES TIERS Titre descriptif du document Référence du document REFO-DT-ENTV2-ServeurCAS-v1.2.docx Nom du fichier REFO-DT-ENTV2-ServeurCAS-v1.2.docx Version du document

Plus en dé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

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

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

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

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

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

Table des Matières. Guide Pratique EDI NetBeans, Développement d'applications Web, 1

Table des Matières. Guide Pratique EDI NetBeans, Développement d'applications Web, 1 Table des Matières Développement Applications Web... 2 Représentation d'applications Web dans l'edi... 3 Vue Project des Applications Web... 3 Vue des Fichiers d'applications Web... 3 Structure Application

Plus en détail

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

Failles XSS : Principes, Catégories Démonstrations, Contre mesures HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,

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

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic Bases de données Page 1 de 11 1- Objectifs généraux Bases de données Prof. : Dzenan Ridjanovic acquérir les principes et concepts fondamentaux dans le domaine des bases de données; développer les connaissances

Plus en détail

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC lift 1 d j = ( + + Architecture Modularité Déploiements lift 2 plates-formes en 1 2 Se t Se Dat t Une architecture répondant à deux besoins : Elévation de la donnée Exploitation de la donnée publiée Des

Plus en détail

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE Première coupe : CREATION : 2010/04/22 MISE A JOUR : 2010/07/01 GLASSFISH:3.0.1 NETBEANS : 6.8 Ce TP de découverte de la plateforme Java EE est une traduction adaptée de «Your First Cup :An Introduction

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en dé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

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

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

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

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Livre Blanc WebSphere Transcoding Publisher

Livre Blanc WebSphere Transcoding Publisher Livre Blanc WebSphere Transcoding Publisher Introduction WebSphere Transcoding Publisher vous permet d'offrir aux utilisateurs des informations Web adaptées à leurs besoins. Il vous permet, par exemple,

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

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

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES WEB & DÉVELOPPEMENT LES BASES DU WEB HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES LE LANGAGE HTML STRUCTURE D UNE PAGE En-tête et corps Syntaxe INSÉRER DES CONTENUS Texte : formatage (titre,

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

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat-8.0.15-windowsx64.zip.

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat-8.0.15-windowsx64.zip. TP réseau Android Ce TP utilise tomcat 8, sous windows et des.bat windows. On peut trouver ce serveur web et conteneur d'applications web à http://tomcat.apache.org/download-80.cgi. Il se trouve dans l'archive

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

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

Architectures client/serveur

Architectures client/serveur Architectures client/serveur Master Technologies de l'internet 1 ère année Eric Cariou Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr 1 Tryptique

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Dans l'article précédent, vous avez appris

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

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

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

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur

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

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

Plus en détail

Environnements informatiques

Environnements informatiques Environnements informatiques Premiers pas sous Linux (seconde partie) 26 septembre 2008 blansche@dpt-info.u-strasbg.fr 1 /12 Administration sous Linux 2 /12 Démarrage Démarrage de Linux Niveaux de démarrage

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail

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

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

A. Architecture du serveur Tomcat 6

A. Architecture du serveur Tomcat 6 Administration du serveur A. Architecture du serveur Tomcat 6 La compréhension de l architecture interne du serveur Tomcat 6 est un pré-requis indispensable pour bien en maîtriser l administration et la

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

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail