Résumé de l'épisode précédent (Les Servlets)

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

Download "Résumé de l'épisode précédent (Les Servlets)"

Transcription

1 Résumé de l'épisode précédent (Les Servlets) XVII-1

2 servlet =? Une servlet est un programme (plug-in) à ajouter à un serveur (quel qu'il soit). Ce cours a trait à la programmation Java coté serveur (Java EE ) Pour l'instant les serveurs acceptant des servlets sont plutôt des serveurs Web. XVII-2

3 Comment ça marche? Le serveur (Web) possède désormais un interpréteur Java (JVM) => il n'y a pas de processus créé lors de l'exécution de code Java Cf. les clients Web possèdent un interpréteur Java permettant de lancer des applets. D'où le nom de servlets. XVII-3

4 Moteurs de servlets (et de JSP) : les pages JSP et la JSTL Tomcat Plug-in d'autres serveurs web (apache, Microsoft IIS, ) Est aussi un mini-serveur Web Version au 1er décembre 2012 Voir à doc/index.html XVII-4

5 Une servlet : code complet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MaPremiereServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // Etape 1. Spécifier le type MIME du contenu de la réponse response.setcontenttype("text/html"); // Etape 2. Récupère le PrintWriter pour envoyer des données au client PrintWriter out = response.getwriter(); } // Step 3. Envoyer l information au client out.println("<html>"); out.println("<head><title>bonjour Servlet</title></head>"); out.println("<body>"); out.println("<h1> Bonjour à tous </h1>"); out.println("il est : " + new java.util.date()); out.println("</body></html>"); } public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { doget(request, response); } XVII-5

6 application web =? "Une application web est une extension dynamique d'un serveur web ou applicatif" Par exemple : les application web orientées présentation qui génèrent des pages web (HTML, XML) dynamiquement XVII-6

7 Architecture d'une application web 1/3 Une bonne référence est : doc/appdev/deployment.html Depuis la version 2.2 des spécifications des servlets, les ressources doivent être rangées comme indiqué diapo suivante : XVII-7

8 Architecture d'une application web 2/3 Les fichiers.html et.jsp doivent être rangés à partir de la racine de votre site web (= application web). /WEB-INF/web.xml : le fichier descripteur de déploiement de votre application web /WEB-INF/classes/ : le répertoire racine de rangement des.class (servlets compilés, etc.). Si les classes sont dans des packages, la hiérarchie des packages doit être respectée à partir de /WEB-INF/classes/. Par exemple la classe cnam.ihm.maservlet doit être mise dans /WEB-INF/classes/cnam/ihm/MaServlet.class XVII-8

9 Architecture d'une application web 3/3 /WEB-INF/lib/ : le répertoire contenant les.jar nécessaires à votre application web (driver JDBC, etc.) RACINE WEB-INF web.xml classes lib *.html, *.jsp On peut mettre tout cela dans un fichier compressé : un.war XVII-9

10 Bibliographie Page de départ de la technologie servlets : dex.html Java servlets, Jason Hunter, ed O'Reilly traduit en français XVII-10

11 Fin du résumé de l'épisode précédent XVII-11

12 JavaServer Pages (JSP) XVII-12

13 ssi : la technique server side include Une page ssi (shtml) est demandée par un client web Le serveur Web passe la main au programme adéquat qui traite la partie de la page le concernant. Ce programme génère la partie dynamique La page HTML créée dans son ensemble est retournée au serveur puis au client Web. XVII-13

14 JavaServer Pages = JSP = la technique des ssi en Java = une page HTML contenant du code Java => meilleure division des tâches : présentation générale par les graphistes coté dynamique par des programmeurs (Java) XVII-14

15 Comment ça marche? Concrêtement : toute la page HTML est convertie en une servlet cette servlet est traitée par le moteur Java intégré au serveur Web (technologie des servlets) et retourne la page HTML construite XVII-15

16 JSP vs. Servlets Servlet = du code Java contenant de l'html JSP = une page HTML contenant du code Java Concrètement avec les JSP : les parties statiques de la page HTML sont écrites en HTML les parties dynamiques de la page HTML sont écrites en Java XVII-16

17 Notre première JSP fichier MaDate.jsp <html><head><title>obtenu par une JSP</title></head> <body> <h3>bonjour de ma part </h3> <hr> La date courante est : <%= new java.util.date() %> </body> </html> Traité quand le client demande l URL de la JSP : XVII-17

18 Tomcat et JSP Des exemples de JSP (code + liens pour l'exécution) sont disponibles à partir de REP_INSTALL_TOMCAT/webapps/examples/jsp pour Tomcat XVII-18

19 Exécution de JSP Il faut mettre les pages JSP dans un endroit particulier du serveur Web Cet endroit dépend du serveur Web et de sa configuration Pour tomcat en configuration standard, /examples/jsp/MaDate.jsp ~ REP_INSTAL_TOMCAT\webapps\examples\jsp\ MaDate.jsp pour tomcat Et sans bidouille!! XVII-19

20 Exécution de JSP (suite) Une démo: Le résultat de MaDate.jsp est : Une autre exécution donne une autre date => dynamicité XVII-20

21 Que s'est il passé? Le moteur de JSP a construit une servlet (MaDate_jsp.java sous l'arborescence work pour Tomcat) Cette phase est parfois appelée la traduction de la JSP (en servlet) Puis a compilé et exécuté la servlet XVII-21

22 La servlet construite package org.apache.jsp;... public class MaData_jsp extends HttpJspBase {... public void _jspservice(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException {... pagecontext = _jspxfactory.getpagecontext(...); session = pagecontext.getsession(); out = pagecontext.getout(); // HTML // begin [file="c:\\...\\examples\\jsp\\madate.jsp";from=(0,0);to=(4,24)] out.write("<html><head><title>obtenu par une JSP</title></head>\r\n <body>\r\n\r\n<h3>bonjour de ma part</h3> <hr>\r\n La date courante est : "); // end //begin [file="c:\\...\\examples\\jsp\\madate.jsp";from=(4,27)to=(4,49)] out.print( new java.util.date() ); // end // HTML // begin [file="c:\\...\\examples\\jsp\\date.jsp";from=(4,51);to=(6,7)] out.write("\r\n</body>\r\n</html>"); // end... } } XVII-22

23 Algorithme d'exécution de la JSP Requête client Conteneur de JSP La servlet associée à la JSP demandée est-elle chargée en mémoire du moteur de servlets? Non Oui Oui servlet à jour précompilée disponible? Non Traduire en servlet et compiler Oui Le fichier JSP a- t-il été modifié depuis la dernière traduction en servlet? Charger la servlet Non Réponse au client Exécuter la servlet XVII-23

24 3 parties d'une JSP scriptlets <% %> déclarations <%! %> expressions <%= %> XVII-24

25 Scriptlets <% %> contient du code Java insérer dans _jspservice() de la servlet, donc peut utiliser out, request, response, etc. Exemple : <% %> String[] langages = {"Java", "C++", "Smalltalk", "Simula 67"}; out.println("<h3>principaux langages orientés objets : </h3>"); for (int i=0; i < langages.length; i++) { out.println("<p>" + langages[i] + "</p>"); } XVII-25

26 Déclarations <%! %> Sont des déclarations Java. Seront insérées comme des membres de la servlet Permet de définir des méthodes ou des données membres Exemples : <%! %> int random4() { return (int)(math.random() * 4); } <%! %> int nombrefetiche = 2; XVII-26

27 Expressions <%= %> En fait expression Java qui renvoie un objet String ou un type primitif. Un raccourci pour <% out.println( ); %> <%= XXX %> ~ <% out.println(xxx); %> attention au ; est donc converti en out.println( ) dans la méthode _jspservice( ) de la servlet. La somme est: <%= ( ) %> Je vous réponds à l'adresse : <%= request.getparameter(" _address") %> XVII-27

28 Objets prédéfinis dans une JSP 3 objets peuvent être immédiatement utilisés dans une expression ou une scriptlet d'une JSP : out : le canal de sortie request (HttpServletRequest) : l'objet requête response (HttpServletResponse) : l'objet réponse Il y en a d'autres Cf. ces mêmes objets dans une servlet XVII-28

29 Un exemple complet : complet.jsp <html><head><title>jsp complet</title></head> <body> <%! String[] langages = {"Java", "C++", "Smalltalk", "Simula 67"}; int random4() { return (int) (Math.random() * 4); } %> <p>parmi tous les langages orientés objets :</p> <ol> <% for (int i=0; i < langages.length; i++) { out.println("<li>" + langages[i] + "</li>"); } %> </ol> <p>le prochain que j'apprends est <b><%= langages[random4()] %> </b></p> </body> </html> XVII-29

30 complet.jsp XVII-30

31 Déboguer les JSP La fenêtre de lancement du serveur Web donne des indications. Suivant les serveurs, une page HTML est retournée avec des indications. Ces éléments sont très souvent relatifs à la servlet et pas à la page JSP. Directives page errorpage=...%> et page iserrorpage="true"%> XVII-31

32 Déboguer les JSP (suite) Un page JSP peut référencer une page erreur par page errorpage="page.jsp"%> La page erreur est indiquée par l'entête page iserrorpage="true"%> Si une exception est levée le traitement est dérouté vers la page erreur qui connaît la référence exception qui repère l'exception XVII-32

33 Déboguer les JSP : exemple langages.jsp <%@ page errorpage="erreur.jsp"%> <%! String[] langages = {"Java", "C++", "Smalltalk", "Simula 67"}; %> <p>parmi tous les langages orientés objets :</p> <ol> <% // levée d'une ArrayIndexOutOfBoundsException for (int i=0; i < 7; i++) { out.println("<li>" + langages[i] + "</li>"); } %> XVII-33

34 Déboguer les JSP : exemple (suite) erreur.jsp <%@ page iserrorpage="true"%> <html><body> exception levée <b> <%= exception %> </b> <hr> <h3>trace de la pile</h3> <pre> <% java.io.printwriter mywriter = new java.io.printwriter(out); exception.printstacktrace(mywriter); %> </pre> </body></html> XVII-34

35 Déboguer les JSP : exemple (fin) Charger la page langages.jsp amène à : XVII-35

36 Enchaîner les pages Un page JSP peut en appeler une autre par la directive : <jsp:forward> Syntaxe : <jsp:forward page="pagederedirection" /> lanceforward.jsp <% String reputilisateur = request.getparameter("reptextfield"); int rep = Integer.parseInt(repUtilisateur); if ((rep % 2) == 0) { %> <jsp:forward page="gagne.jsp"/> <% } else { %> <jsp:forward page="perdu.jsp"/> <% } %> On n'affiche jamais cela XVII-36

37 Enchaîner les pages (suite) Après un <jsp:forward>, le traitement est entièrement pris en charge par nouvelle page Navigateur 1. lanceforward.jsp Serveur Web lanceforward.jsp <jsp:forward page="gagne.jsp"/> 3. Retourner gagne.jsp gagne.jsp worker.jsp Transmis à gagne.jsp XVII-37

38 Inclusion de fichiers par include file=" " %> Utilisé pour faire des inclusions statiques de fichiers : en-tête ou pied de page... Syntaxe : <%@ include file="path to relative URL" %> Le fichier est inclus au moment de la traduction main.jsp <%@ include file="header.html" %> <h3>bienvenue en GLG 203</h3> header.html <%@ include file="footer.jsp" %> footer.jsp

39 Inclusion de pages <jsp:include page=" " /> Pour inclure des sorties de servlets ou JSPs Le contenu du servlet ou de la JSP est traité avant l inclusion La page est incluse au moment de la requête Syntaxe : <jsp:include page="path to relative URL" /> Le traitement de la page courante continue après l inclusion des ressources header.html main.jsp <jsp:include > <jsp:include > questions.jsp Components Permet aussi d inclure du HTML On préférera <%@ include %> pour inclure du HTML

40 Différences entre les 2 include <%@ include... > est un simple inclusion, c'est à dire une copie (à la #include des langages C, C++) <jsp:include...> peut faire le même travail que <%@ include... > mais fait l'inclusion à chaque requête donc dynamique. On peut donc inclure une autre page JSP, qui sera exécutée à la requête. De plus avec <jsp:include...>, on peut passer des paramêtres à la page à inclure, voire faire de la programmation qui sera exécutée à la requête. XVII-40

41 Passage de paramêtres grâce à jsp:include Une page JSP peut passer des paramètres supplémentaires à la page de destination Par exemple page1.jsp envoie un paramètre supplémentaire à travail.jsp <jsp:include page="travail.jsp"> <jsp:param name="niveautraitement" value="important" /> </jsp:include> travail.jsp récupère le paramètre à l'aide de request.getparameter("nomvariable") Ce traitement est : <%= request.getparameter("niveautraitement") %> XVII-41

42 Programmation (conditionnelle) grâce à jsp:include Ayant récupéré un paramêtre on peut s'en servir! <% String typevacanceschoisi = request.getparameter("typevac"); String choixdestinations; if ( (typevacanceschoisi!= null) && (typevacanceschoisi.equalsignorecase("nature"))) { choixdestinations = "vacancesalacampagne.jsp"; } else { choixdestinations = "vacancescitadines.jsp"; } %> <jsp:include page="<%= choixdestinations %>"/> XVII-42

43 Conclusion include...> vs. include %> <jsp:include...> Inclusion statique de page HTML ou JSP = le contenu est inclus au moment de la traduction Le nom du fichier à inclure doit être connu au moment de la traduction Souvent utilisé pour les en-têtes et pieds de page <jsp:include> Inclusion dynamique de JSP ou sortie de servlet = le contenu est traité au moment de la requête Le nom de la page à inclure peut être déterminé au moment de la requête Peut passer des paramètres aux pages incluses XVII-43

44 JSP et Java beans But : avoir le moins de code Java possible dans une page JSP (HTML) Sous-traiter le code à un Java bean balise XML : <jsp:usebean> XVII-44

45 JSP et Java beans (suite) Syntaxe générale : <jsp:usebean id="nominstancejavabean" class="nomclassedubean" scope="request session application page"> </jsp:usebean> Le bean est alors utilisable par nominstancejavabean balise sans corps donc utilisation de <jsp:usebean /> XVII-45

46 page l'attribut scope Il indique la portée du bean. valeur request session application Description Le bean est valide pour cette requête. Il est utilisable dans les pages de redirection de la requête (<jsp:forward>). Il est détruit à la fin de la requête. Similaire à request, mais le bean n'est pas transmis aux pages de redirection <jsp:forward>. C'est la portée par défaut Le bean est valide pour la session courante. S il n existe pas encore dans la session courante, il est créé et placé dans la session du client. Il est réutilisé jusqu à ce que la session soit invalidée Le bean est valide pour l application courante. Il est créé une fois et partagé par tous les clients des JSP. XVII-46

47 JSP et Java beans : exemple Soit le bean : package cnam; public class SimpleBean implements java.io.serializable { } private int compter; public SimpleBean() { compter = 0; } public void setcompter(int thevalue) { compter = thevalue; } public int getcompter() { return compter; } public void increment() { compter++; } XVII-47 Remarque : il faut mettre le bean dans un package

48 Utilisation du bean dans une JSP Utilisation à l'aide de son nom Récupération des propriétés : Par appel de méthode getxxx() : Par la balise <jsp:getproperty > <p> on repere le bean par le nom nombean<br> <jsp:usebean id="nombean" class="cnam.simplebean" scope="session" /> <p> On accede a une propriéte avec une expression: <br> compteur = <%= nombean.getcompter() %> <hr> On incrémente le compteur <% nombean.increment(); %> <p>on peut accéder à la propriété par une balise :<br> <jsp:getproperty name="nombean" property="compter" /> XVII-48

49 Positionner les propriétés du bean dans une JSP Par appel de méthode setxxx(...) : Par la balise <jsp:setproperty > <p> on repere le bean par le nom nombean<br> <jsp:usebean id="nombean" class="cnam.simplebean" scope="session" /> <p> On positionne une propriéte avec une expresion: <br> compteur = <%= nombean.setcompter(6) %> <p>ou par une balise :<br> <jsp:setproperty name="nombean" property="compter" value="6" /> Une demo? OK! XVII-49

50 Architecture MVC modèle = les données accédées par un code Java (JDBC, RMI, EJB, etc.) vues = JSP contrôleur = servlets XVII-50

51 Architecture MVC (suite) Syntaxe dans la servlet pour lancer la JSP : public void dopost(httpservletrequest request, HttpServletResponse response){ ServletContext context = getservletcontext(); // héritée de GenericServlet RequestDispatcher dispatcher = context.getrequestdispatcher("/mapagemiseenforme.jsp"); dispatcher.forward(request, response); } XVII-51

52 Architecture MVC (suite) La servlet peut passer des valeurs à la JSP appelée grâce à setattribute() public void dopost(httpservletrequest request, HttpServletResponse response) { // appelle les méthodes sur les objets métiers ArrayList thelist = // un objet à passer // ajoute à la requête request.setattribute("nomdelobjet", thelist); ServletContext context = getservletcontext(); RequestDispatcher dispatcher = context.getrequestdispatcher("/jspaappeler.jsp"); dispatcher.forward(request, response); } La JSP extrait les objets de request grâce à getattribute() <% ArrayList thelist = (ArrayList) request.getattribute("nomdelobjet"); // maintenant, utiliser l'arraylist %> XVII-52

53 La JSTL (JSP Standard Tag Library) XVII-53

54 Développer ses propres balises On plus des balises jsp:usebean, jsp:setproperty, etc, on peut développer ces propres balises Le but? Ne manipuler qu'un langage de balises dans les pages JSP Première technique : avec des classes Java. C'est lourd et délicat mais cela fonctionne Seconde technique : avec les bibliohèques de balises (tags libraries) XVII-54

55 Développer ses balises avec une "tag library" Une "tag library" est une bibliothèque de balises. Concrètement, c'est un répertoire qui contient des descriptions de balises L'application web a l'architecture : racine de l'appli web WEB-INF tags dictons.tag dictons_test.jsp XVII-55

56 dictons_test.jsp C'est la page JSP qui utilise la balise : <%@ taglib prefix="ez" tagdir="/web-inf/tags"%> <html><body> <b>formule du soir</b> <hr/> <i> <ez:dictons/> </i> </body></html> Une démo : OK. URL XVII-56

57 dictons.tag Pour cela, il faut avoir le fichier dictons.tag Sa syntaxe est aisée et proche du langage Java : <%! String[] lesdictons = {"Bonsoir!", "GLG203, c'est vraiment super", "Le CNAM, quel pied!"}; %> <% %> int index = (int) (Math.random() * lesdictons.length); out.print(lesdictons[index]); XVII-57

58 Balises avec attribut On peut développer des balises plus complexes (avec attribut par exemple) et avoir une page JSP comme : <%@ taglib prefix="ez" tagdir="/web-inf/tags"%> <html><body> <b>formule du soir</b> <hr/> <i> <ez:dictonsavecattributs nompersonne="toto"/> </i> </body></html> Un démo OK : URL /GLG203/dictonsAvecAttributs_test.jsp XVII-58

59 dictonsavecattriburs.tag Pour cela, il faut avoir le fichier dictonsavecattributs.tag Les suppléments en gras attribute name="nompersonne" type="java.lang.string" required="false" %> <%! String[] lesdictons = {"Bonsoir!", "GLG203, c'est vraiment super", "Le CNAM, quel pied!"}; %> <% %> int index = (int) (Math.random() * lesdictons.length); if (nompersonne!= null) { out.print("pour monsieur " + nompersonne + ", "); } out.print(lesdictons[index]); XVII-59

60 Et avec des classes Java? "C'est lourd et délicat, mais cela fonctionne"! L'idée principale est que, quand le conteneur de pages JSP lit une page JSP, il peut déclencher le lancement de certaines méthodes d'une classe associée à une balise (cf. les traitements JAXP) Par exemple, on définit la classe Hello.java : package cnam; import javax.servlet.jsp.tagext.*; public class Hello extends TagSupport{ public int dostarttag() throws JspException { try { pagecontext.getout().print("hello World"); } catch (Exception ex) { throw new JspException("IO problems"); } return SKIP_BODY; } } XVII-60

61 Association classe Java et balise C'est dans le fichier de description de bibliothèques de balises (tld = tag library descriptor) qu'est indiqué l'association classe Java, balise : <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <tag> <name>bonjour</name> <tag-class>cnam.hello</tag-class> </tag> <tag> </tag> </taglib> XVII-61 fichier balisescnam.tld L élément <taglib> contient un ou plusieurs sous-éléments <tag>

62 Classe Java, tld, où ranger tout cela? La classe compilée est mise (évidemment) dans WEB- INF/classes Les fichiers.jsp et.tld sont mis dans une arborescence de l'application web, cohérente avec les URL d'accès Par exemple : app root WEB-INF classes tagme cnam balisescnam.tld pagedetest.jsp Hello.class XVII-62

63 Utilisation de balises de Fichier : pagedetest.jsp bibliothèque dans une JSP <html><body> <%@ taglib uri="/tagme/balisescnam.tld" prefix="ez" %> <b>horoscope du Jour</b> <hr/> <i> <ez:bonjour/> </i> </body></html> Vous choisissez le préfixe Fichier : balisescnam.tld <taglib> <tag> <name>bonjour</name> <tagclass>cnam.hello</tagclass> </tag> </taglib> Nom complet de la classe

64 la JSTL Il n'est donc pas trop étonnant d'avoir des bibliothèques standard qui ont été développées pour les usages courants "The JavaServer Pages Standard Tag Library (JSTL) encapsulates as simple tags the core functionality common to many Web applications" (*) La première est la JSTL (JSP Standard Tag Library) Elle amène des structures de contrôle (tests, boucle), l'internationalisation, l'accès aux bases de données et les traitements XML Les spécifications de la JSTL sont téléchargeables à partir de sr052/index.html (*) source : XVII-64

65 Utiliser la JSTL Pour utiliser la JSTL il faut récupérer une ou des archives.jar suivants les versions que vous voulez utiliser. Voir à Pour la version 1.2, le seul fichier jstl-1.2.jar est nécessaire Pour la version 1.0, il en fallait 2 : récupérer (ou avoir) les archives jstl.jar et standard.jar, par exemple à l'url loads_taglibs-standard.cgi (prendre le.zip) installer ces archives dans votre application web. Pour tomcat, il faut installer ces archives dans WEB-INF\lib de l'application web ou, plus généralement, dans %TOMCAT_HOME %\lib (et dans ce cas, toutes les applications web pourront utiliser la JSTL) XVII-65 Essentiellement ces archives contiennent des classes Java compilées correspondant aux balises utilisées

66 Une première page avec la JSTL fichier iterer.jsp mis dans l'appli web GLG203 taglib prefix="c" uri=" %> <html> <head> <title>iterer avec la JSTL</title> </head> <body> <h3>une simple iteration</h3> <h4>de 1 à 10</h4> <c:foreach var="i" begin="1" end="10"> ${i} </c:foreach> </body> </html> résultat : XVII-66

67 JSTL : syntaxe <%@ taglib prefix="c" uri=" %> <c:foreach var="i" begin="1" end="10"> ${i} </c:foreach> La ligne <%@ taglib prefix="c" uri=" %> indique que la bibliothèque de balises de nom sera référencée par le préfixe c Dans cette bibliothèque, il y a la balise foreach (d'où son utilisation c:foreach) avec 3 attributs : nom de variable, valeur de début, valeur de fin On récupére la valeur courante de la variable dans le corps de cette balise par ${nomvariable} XVII-67

68 Les noms de bibliothèques de balises Ce sont des URI (Uniform Resource Identifier), bref un identificateur. Dans le fichier standard.jar, se trouve un répertoire META- INF (bravo!), contenant des fichiers.tld. Ce sont dans ces fichiers que sont indiqués l'uri d'une bibliothèque. Par exemple le fichier c.tld XVII-68

69 Noms de bibliothèques de balises : c.tld fichier META-INF\c.tld dans standard.jar <?xml version="1.0" encoding="utf-8"?> <taglib... version="2.0"> <description>jstl 1.1 core library</description> <display-name>jstl core</display-name> <tlib-version>1.1</tlib-version> <uri> <tag> <description> The basic iteration tag,... </description> <name>foreach</name> <tag-class>org.apache.taglibs.standard.tag.rt.core.foreachtag</tag-class>... </tag>... </taglib> XVII-69

70 JSTL : exemples de balises Les principales balises de la bibliothèque core associé au préfixe c sont : c:out, c:set, c:catch, c:if, c:foreach : <c:out value="expression" /> est équivalent à <%= expression %> <c:set var="nomvariable" scope="application" value="valeur" /> est équivalent à <% pagecontext.setattribute("nomvariable", valeur, PageContext.APPLICATION_SCOPE)%> <c:catch var="expression" /> est équivalent à actions à surveiller </c:catch> <% try { actions à surveiller } catch (Throwable expression) {} %> XVII-70

71 JSTL : exemples de balises (suite) Le si(condition) en JSTL : est équivalent à : <% if(user.visitcount == 1) { %> <%= "première visite" %> <% } %> <c:if test="${user.visitcount == 1}"> <c:out value="première visite" /> </c:if> Le si / alors en JSTL : XVII-71 (c'est plutôt un switch!) <c:choose> <c:when test="${user.category == 'invite'} >... </c:when> <c:when test="${user.category == 'membre'} >... </c:when> <c:when test="${user.category == 'vip'} >... </c:when> <c:otherwise>... </c:otherwise> </c:choose>

72 Itération avec la JSTL La boucle : est équivalente à : <c:foreach var= user items= sessionscope.members > <c:out value="nom: ${user.name}" /> </c:foreach> <%@page import="java.util.*" %>.... <% Member user = null; Collection users = session.getattribute("members"); Iterator it = users.iterator(); while(it.hasnext()){ user = (Member) it.next(); %> <%= "nom: "+user.getname() %> <% } %> Bon, OK, c'est plus lisible! XVII-72

73 Les autres bibliothèques de la JSTL On a des pratiques similaires avec les bibliothèques Formatage des données et internationalisation (URI préfixe conseillé x) Manipulation de XML (URI préfixe conseillé fmt) Accès au bases de données (URI préfixe conseillé sql) XVII-73

74 Bibliographie JavaServer Pages. Hans Bergsten; ed O'Reilly. ISBN X Technologie Apache/Tomcat à Tutorial sur la JSTL : stl1.html XVII-74

75 Fin XVII-75

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Patrons de conception [Krakowiak06]

Patrons de conception [Krakowiak06] Architectures Outils Java Servlets État servlet JSP Accès BD Conception Patrons de conception [Krakowiak06] 284 Définition ensemble de règles (définitions d éléments, principes de composition, règles d

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

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

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

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

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

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

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

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

Java Naming and Directory Interface

Java Naming and Directory Interface Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard

Plus en détail

Traitement des données de formulaires. Accès aux BD avec JDBC Servlets - M. Baron - Page

Traitement des données de formulaires. Accès aux BD avec JDBC Servlets - M. Baron - Page Organisation du cours sur les Servlets Servlets et API Traitement des données de formulaires Architecture de développement Cycle de vie Suivi de session Collaboration de Servlets Sécurité : authentification

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

Documentation CAS à destination des éditeurs

Documentation CAS à destination des éditeurs Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges

Plus en détail

Aspects techniques : guide d interfaçage SSO

Aspects techniques : guide d interfaçage SSO COURDECO Aspects techniques : guide d interfaçage SSO Septembre 2011 Cette annexe présente succinctement le système d'authentification unique (SSO : single sign on, authentification unique) utilisé dans

Plus en détail

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques Application statique Tolérance aux Fautes des Grappes d Applications J2EE Sara Bouchenak Sacha Krakowiak, Noël de Palma, Stéphane Fontaine Projet SARDES INRIA IMAG CFSE'4, 6-8 avril 2005 Tolérance aux

Plus en détail

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

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

Plus en détail

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

10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr]

10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr] 10. Base de données et Web 313 Evolution de l'information Ordre de grandeur : 314 1Mo : 1 gros roman 200Mo : ce que mémorise un être humain dans sa vie. 900Mo : information contenue dans le génome d'une

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

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

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

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

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ; s Introduction Naissance d'un programme Exercice I-1 : Apprendre à décomposer une tâche en sous-tâches distinctes a. Objets nécessaires : 1 tableau, 1 clou, 2 pointes, 1 ficelle, 1 marteau, 1 crayon, 1

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

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

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

Plus en détail

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

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

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

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

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

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

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

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

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

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

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

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

Cours 9 : Servlet, JSP, corba

Cours 9 : Servlet, JSP, corba Cours 9 - PC2R - UPMC - 2006/2007 p. 1/60 Cours 9 : Servlet, JSP, corba chargement dynamique Applet Servlet JSP Corba Cours 9 - PC2R - UPMC - 2006/2007 p. 2/60 Chargeur de classes utilisateur classe abstraite

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

Un serveur d'archivage

Un serveur d'archivage Un serveur d'archivage destiné au Service Commun de Documentation de l'université de la Méditerranée Encadrement : Noël Novelli Représentants client (S.C.D.) : Axelle Clarisse Ronan Lagadic Equipe Projet

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

DOSSIER DEVELOPPEUR Projet CAR

DOSSIER DEVELOPPEUR Projet CAR DOSSIER DEVELOPPEUR Projet CAR Maître d ouvrage (enseignant responsable) : Titulaire (équipe de conception) : William BOHER-COY Jonathan FAVIER Samuel ROLLET Robin HAIDER Date de rédaction : 26/01/2008

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

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

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 5 Le projet WTP (Web

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

Formation en Logiciels Libres. Fiche d inscription

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

Plus en détail

Java 1.5 : principales nouveautés

Java 1.5 : principales nouveautés Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés

Plus en détail

2 Chapitre 1 Introduction

2 Chapitre 1 Introduction 1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

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

Jacques Lonchamp. Conception. d applications en Java/JEE. Principes, patterns et architectures Jacques Lonchamp Conception d applications en Java/JEE Principes, patterns et architectures Illustration de couverture : Abstract triangle mosaic background karandaev - Fotolia.com Dunod, 2014 5 rue Laromiguière,

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

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

Cloud. Définition? 08/11/2012. James Urquhart The Wisdom of Clouds

Cloud. Définition? 08/11/2012. James Urquhart The Wisdom of Clouds Cloud Définition? the market seems to have come to the conclusion that cloud computing has a lot in common with obscenity--you may not be able to define it, but you ll know it when you see it James Urquhart

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

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

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

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s Mickaël Mickaël BLANCHARD BLANCHARD Préface de Sébastien L e p e r s Magento Préface de Sébastien L e p e r s Magento Réussir son site e-commerce Réussir son site e-commerce Groupe Eyrolles, 2010, ISBN

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

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

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

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

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

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

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

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009 HTTP Technologies du Web Programmation Web côté serveur Pierre Senellart (pierre.senellart@telecom-paristech.fr) Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009 P. Senellart (TELECOM

Plus en détail

Catalogue des Formations Techniques

Catalogue des Formations Techniques Catalogue des Formations Techniques Items Média Concept 4, allées Pierre-Gilles de Gennes - 33700 Mérignac Téléphone : 05.57.35.73.73 Télécopie : 05.57.35.73.70 Courriel : contact@imc-fr.com 2 Préambule

Plus en détail

Hébergement de site web Damien Nouvel

Hébergement de site web Damien Nouvel Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture

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

Java - MySQL. Code: java-mysql

Java - MySQL. Code: java-mysql Java - MySQL java-mysql Java - MySQL Code: java-mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/java-mysql/java-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/java-mysql.pdf Auteurs

Plus en détail

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant

Plus en détail

Ociensa Technologies. www.ociensa.com

Ociensa Technologies. www.ociensa.com Nouvelles formations 2013 Le framework Zend 2 Le framework Zend 2 et l'orm Doctrine 2 WordPress pour créer un site Web ou un blog Développement et Formation Informatique Java EE - PHP - Zend - Doctrine

Plus en détail

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

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

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

Plus en détail

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

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3 Jahia Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3 Qu'est ce que c'est? Jahia est une solution de portail internet et de gestion de contenu destiné aux entreprises. (CMS and Enterprise

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

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

Programmation par composants (1/3) Programmation par composants (2/3) Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

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

Plus en détail