Le développement d applications Web. François Charoy Pascal Molli Pascal Urso

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

Download "Le développement d applications Web. François Charoy Pascal Molli Pascal Urso"

Transcription

1 Le développement d applications Web François Charoy Pascal Molli Pascal Urso

2 License Creative Commons Cette création est mise à disposition selon le Contrat Paternité-Pas d'utilisation Commerciale-Partage des Conditions Initiales à l'identique 2.0 France disponible en ligne par courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. 2 CC by-nc-sa

3 Plan Historique & objectifs Présentation des Servlets Spécificité Sécurité Les JSP Architecture MVC web Framework JSF 3 CC by-nc-sa

4 Premier browser sur NeXt 4 CC by-nc-sa

5 Application Web 5 CC by-nc-sa

6 Web 1.0 vs Web CC by-nc-sa

7 Modèle de conversation 7 CC by-nc-sa

8 Short History 1980 : HTML : Scripts CGI Programmes C, shell scripts, perl, : Langages spécifiques ( scripting PHP, JSP, ASP (Server Side ( Scripting JavaScript (Client Side 2002 : Evolutions de HTML XHTML, CSS, JavaScript 8 CC by-nc-sa

9 Aggrégation 9 CC by-nc-sa

10 10 CC by-nc-sa

11 Mashups Composition d'application Web Composition/Filtre de sources de données Composition d'applications Google Maps + bases de données Yahoo Pipes CC by-nc-sa

12 Service Web/Rest Exposition des API Exemple : Twitter 12 CC by-nc-sa

13 Conclusion Les applications Web sont le cœur du Web-2.0 Et ça ne fait que commencer... Pour développer des appli web pertinentes: Vous avez besoin de «comprendre» le web Vous avez besoin de comprendre les problèmes techniques pour faire des applications Web évolutives, sécurisées, tolérantes aux pannes, composable Vous devez comprendre les problèmes spécifiques des applications web pour rendre les applications Web utilisables, maintenable et sûres 13 CC by-nc-sa

14 Developping Web Applications : Introduction to Servlets 14 CC by-nc-sa

15 Couches de protocole du WWW Modèle OSI 7. Couche application HTTP 6. Couche de présentation HTML, MIME 5. Couche de session non 4. Couche de transport TCP 3. Couche de réseau IPv4, IPv6 2. Couche de liaison whatever 1. Couche physique whatever 15 CC by-nc-sa

16 Requête HTTP Quelques lignes de texte Ligne de commande : commande, url, version de protocole Entête de requête [ligne vide] Corps de requête (optionel : paramêtres, appel soap, ) POST /fichier.ext HTTP/1.1 Host: Connection: Close Content-type: application/x-www-form-urlencoded Content-Length: 33 <nouvelle ligne> variable=valeur&variable2=valeur2 16 CC by-nc-sa

17 Commandes HTTP Demande sans effet de bord (en théorie) GET ressource HEAD information sur une ressource OPTIONS options de communication CONNECT utilisation de proxy TRACE journal de serveur Demande avec effet de bord (en théorie) POST soumission de données PUT ajout/màj d une ressource DELETE suppression d une ressource Usuellement seulement GET et POST 17 CC by-nc-sa

18 Réponse HTTP Quelques lignes de texte Ligne de statut : version de protocole, code, message Entête de réponse [ligne vide] Corps de requête (optionel : ressource, url, rép. soap, ) HTTP/ OK Date: Fri, 31 Dec :59:59 GMT Server: Apache/0.8.4 Content-Type: text/html Content-Length: 59 <TITLE>Exemple</TITLE> <P>Ceci est une page d'exemple.</p> 18 CC by-nc-sa

19 Quels sont les problèmes? Protocole HTTP Stateless Clients multiples et inconnus Identification des utilisateurs Maintient des sessions Requêtes et réponses statiques Application distribuée Concurrence d accès Sécurité Passage à l échelle 19 CC by-nc-sa

20 Les Servlets Permettre la programmation d'applications coté serveur Permettre l'extension d'un serveur Web en java Permettre la construction d'appli Web dynamique ~Equivalent fonctionnel des CGI en java 20 CC by-nc-sa

21 Ressources Référence API Tutorial Java Specification Requests Servlet JSP 21 CC by-nc-sa

22 Fonctionnement d'un servlet Un servlet lit les données envoyées par un client Web (transmises par le serveur) Données explicites (Formulaire) Données implicites (Request Header) Il génère un résultat Il envoit le résultat au client Données explicites (Page HTML) Données implicites (Response Header, Status code) Serveur Web Database Jndi Java App 22 CC by-nc-sa

23 Serveur d'application JEE Fournit un ensemble de services pour l'écriture d'application distribuées en Java Nommage Transactions Sécurité Conteneur Web Pourquoi Java? 23 CC by-nc-sa

24 Avantage des servlets Efficacité Utilisent des threads plutôt que des processus comme les CGI Pratique Librairie très développée (moins que PHP mais plus consistante) Portable Déployable quelque soit le serveur (ou presque) Sécurisé Fonctionne dans une machine virtuelle (plus maitrisable) Pas cher Nombreux serveurs gratuits 24 CC by-nc-sa

25 L architecture 25 CC by-nc-sa

26 La partie Web 26 CC by-nc-sa

27 Les containers de servlet Les servlets sont des composants Ils s'exécutent dans un container Ils doivent se conformer à une interface prédéfinie C est le container qui décide de leur instantiation Les containers Environnement d exécution des servlets ( jakarta.apache.org/tomcat ) Tomcat Jetty Weblogic Glassfish 27 CC by-nc-sa

28 L exécution d un servlet 28 CC by-nc-sa

29 Un premier servlet Le servlet HelloWorld Un servlet surcharge la classe HttpServlet Il doit implanter au moins une des méthodes doget dopost doput dodelete 29 CC by-nc-sa

30 Le servlet HelloWorld 30 CC by-nc-sa

31 Le fichier de configuration 31 CC by-nc-sa

32 Servlet 3.0 : annotations Avoid the configuration file 32 CC by-nc-sa

33 Un module Web Déployable et exécutable dans un serveur Web 33 CC by-nc-sa

34 L application Web Une archive war Déployée dans le serveur Web Web.xml = description de l application

35 Structure d une application Package déployable Composants Web : Servlet et JSP Ressources statiques (images) Classes java (helper) Librairies Descripteurs de déploiement (web.xml) 35 CC by-nc-sa

36 Execution d une requête 36 CC by-nc-sa

37 Exécution d une requête Objet HttpServlet Objets HttpServletRequest, HttpServletResponse Paramètres de requête, Header de requête Cycle de vie des servlet 37 CC by-nc-sa

38 La classe HttpServlet 38 CC by-nc-sa

39 doget et dopost 39 CC by-nc-sa

40 L'interface HttpServletRequest Fournit les informations sur la requête du client au serveur Principales méthodes (pour l'instant): String getparameter(string name) Enumeration getparameternames() Retourne une énumération de tous les noms de paramètres String[] getparametervalues() Retourne un tableau contenant toutes les valeurs des paramètres String getheader(string name) Enumeration getheadernames() Retourne une énumération de tous les noms des propriétés du header String[] getheadervalues() Retourne un tableau de toutes les valeurs du header 40 CC by-nc-sa

41 Les paramètres Les paramètres d'une requête sont accessibles dans l'objet (HttpServletRequest) request request.getparameter("paramname"); Il est possible de récupérer tous les noms des paramètres request.getparameternames() 41 CC by-nc-sa

42 Exemples paramètres 42 CC by-nc-sa

43 Exemple POST ladis2009/program.htm 43 CC by-nc-sa

44 Exemple POST (suite) 44 CC by-nc-sa

45 Nombre de requêtes HTTP : 2 (GET) (POST) 45 CC by-nc-sa

46 Les request headers 46 CC by-nc-sa

47 L'interface HttpServletResponse Objet fournissant les services pour envoyer la réponse à un client. Les principales méthodes sont: java.io.printwriter getwriter() Pour récupérer un printwriter qui permet d'envoyer du texte au client public void setcontentlength(int len) Positionne le Content-Length Header public void setcontenttype(java.lang.string type) Position le Content-Type header (exemple text/html) public void senderror(int sc, java.lang.string msg) throws java.io.ioexception Envoi un message d'erreur au client (cf code dans l'api) public void setheader(java.lang.string name, java.lang.string value) 47 CC by-nc-sa

48 web.xml Le fichier web.xml donne des instructions sur le déploiement du servlet dans le container web-app La description d'une Web Application Servlet La relation entre le nom du servlet et la classe qui l'implante Servlet-mapping La relation entre le nom du servlet et l'url qui permet d'y accéder Servlet 3.0 : remplacement possible par Plus «élégant» Moins «modulaire» 48 CC by-nc-sa

49 Les paramètres d'initialisation Les servlets peuvent avoir des paramètres d'initialisation. Ces paramètres peuvent être changés sans avoir à recompiler l'application <init-param> <param-name>testvalue</param-name> <param-value>12</param-value> <description>une valeur quelconque</description> </init-param> Ces paramètres peuvent être utilisés avec la méthode javax.servlet.servletconfig.getinitparameter() Annotation 49 CC by-nc-sa

50 Exemple 50 CC by-nc-sa

51 Le servlet mapping Permet de construire la relation entre un servlet et son URL <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test/*</url-pattern> </servlet-mapping> Tous les urls correspondant à déclencherons l exécution du servlet Exemples /*.do /Test /cours/test/* 51 CC by-nc-sa

52 Servlet mapping /foo ) public class A extends HttpServlet { } public void doget(httpservletrequest req, HttpServletResponse res) {... MyServlet, urlpatterns={"/foo*", "/bar"}, initparams = value="hello (name="y", value=" World!") }) public class B extends HttpServlet { } CC by-nc-sa

53 Les éléments du chemin de requête ContextPath : le chemin du contexte de déploiement ServletPath : la section du chemin qui a déclenché le mapping PathInfo : la partie de la requête qui n est ni le ContextPath ni le ServletPath Request.getContextPath() Request.getServletPath() Request.getPathInfo() 53 CC by-nc-sa

54 Exemples 54 CC by-nc-sa

55 Autre propriétés Pour le mapping mime <mime-mapping> Pour les fichiers à charger quand un nom de répertoire est donné <welcome-file-list> Pour les pages d'erreur <error-page> Pour chaque code d'erreur on peut fixer une page spécifique Il y en a d'autres pour La sécurité Les taglibs Les références aux ressources utilisés par les servlets 55 CC by-nc-sa

56 Le cycle de vie d'un servlet Tous les servlets ont le même cycle de vie Le container charge le servlet La fonction init() est appelée (initialisation de variables, connection à des bases de données) Le servlet répond aux requêtes des clients Le container détruit le servlet La fonction destroy() est appelée (fermeture des connections) 56 CC by-nc-sa

57 Servlet Life Cycle 57 CC by-nc-sa

58 Ecrire une application Web 58 CC by-nc-sa

59 Ecrire une application Web Gestion des paramètres Application Session RequestDispatcher Listeners Filtres Wrapper Erreurs Sécurité 59 CC by-nc-sa

60 La visibilité (from jguru) 60 CC by-nc-sa

61 Le ServletConfig Objet utilisé par le container de servlet pour passer des valeurs lors de l'initialisation du servlet Obtenu avec Servlet.getServletConfig() Principales méthodes String getinitparameter(string name) Retourne la valeur d'un paramètre d'initialisation du servlet ServletContext getservletcontext() Permet de récupérer l'objet servletcontext String getservletname() Retourne le nom du servlet comme spécifié dans le fichier de description. Implanté par HttpServlet 61 CC by-nc-sa

62 Le Servlet Context Maintien des données pour toute l application Fournit le request dispatcher Données d initialisations pour toute l application Log Un ServletContext par application et par JVM 62 CC by-nc-sa

63 Le ServletContext Objet permettant au servlet de communiquer avec le servlet container Obtenu avec Servlet.getServletContext() Les principales méthodes de ServletContext Object getattribute(string name) Retourne un attribut du contexte void setattribute(string name, Object value) Ajoute ou remplace un objet dans le contexte String getinitparameter(string name) Retourne un paramètre d'initialisation de l'application void log(string msg) Ajoute un message dans le log file du servlet container 63 CC by-nc-sa

64 Le Servlet Context 64 CC by-nc-sa

65 Les attributs du context Valeurs disponibles pour toute l application 65 CC by-nc-sa

66 Le contexte Il est possible d'avoir des paramètres d'initialisation du contexte <context-param> <param-name>database</param-name> <param-value>testdb</param-value> <description>le nom de la base</description> </context-param> Ces paramètres peuvent être utilisés dans le servlet avec la méthode Javax.servlet.ServletContext getinitparameter() et Javax.servlet.ServletContext.getInitParameterNames() 66 CC by-nc-sa

67 La visibilité (from jguru) 67 CC by-nc-sa

68 Les Sessions Comment maintenir l état d un client au cours d une série de requêtes d un même utilisateur pendant un temps donné? HTTP est stateless Comment identifier le client? Où mettre les données de la session? 68 CC by-nc-sa

69 Servlet et sessions La gestion des sessions utilise les techniques classiques url rewriting Cookies Champs cachés dans les formulaires L'API HttpServlet fournit des fonctions pour gérer les sessions L'implantation est casi-transparente pour l'utilisateur 69 CC by-nc-sa

70 Session & HttpServletRequest C'est le paramètre request qui maintient les informations sur la session Les méthodes sont HttpSession request.getsession(boolean flag) Flag=true : retourne l'objet session courant ou en crée un s'il n'y en a pas. Flag=false : Retourne l'objet session courant ou null s'il n'y en a pas isrequestedsessionidvalid() Vrai si l'id de la session est valide dans le contexte courant isrequestedsessionidfromcookie() Vrai si l'id de la session vient d'un cookie isrequestedsessionidfromurl() Vrai si l'id de la session vient d'un URL 70 CC by-nc-sa

71 Création de la session 71 CC by-nc-sa

72 Requête dans la même session 72 CC by-nc-sa

73 L'objet HttpSession L'objet HttpSession permet de conserver des valeurs entre des appels d'un client Les principales méthodes sont Object getattribute(string name) Récupère la valeur de l'attribut par son nom Enumeration getattributenames() Retourne la liste de tous les attributs void setattribute(string name, Object value) Ajoute un attribut à la session String getid() Retourne l'identifiant de la session void invalidate() Invalide la session long getcreationtime() long getlastaccessedtime() long getmaxinactiveinterval() ServletContext getservletcontext() 73 CC by-nc-sa

74 Cookies Création de cookies 74 CC by-nc-sa

75 Cookies 75 CC by-nc-sa

76 Getting cookies values 76 CC by-nc-sa

77 Fin de vie d une session Au niveau programmatique Fermeture automatique en fixant la durée de vie (en minutes) <session-config> <session-timeout>30</session-timeout> </session-config> 77 CC by-nc-sa

78 Ecrire une application Web RequestDispatcher 78 CC by-nc-sa

79 Le RequestDispatcher L'objet RequestDispatcher est utilisé pour Transférer la requête à un autre programme Inclure la réponse d'un autre programme Pour obtenir le request dispatcher 79 CC by-nc-sa

80 L'utilisation du RequestDispatcher La requête peut être transférée rd.forward(request,response) L'utilisation classique consiste à avoir un servlet contrôleur qui transmet les commandes à des servlets spécialisés Pas d écriture sur la réponse avant le forward (exception) Le contrôle revient au servlet Ecritures sur la réponse ignorés après le forward La réponse peut être incluse dans la réponse en cours de construction rd.include(request,response) Ici, on peut implanter un équivalent de server side include. 80 CC by-nc-sa

81 Exemple d utilisation Démonstration! 81 CC by-nc-sa

82 82 CC by-nc-sa

83 Ecrire une application Web Listeners 83 CC by-nc-sa

84 Les listeners Les listeners sont des objets dont les méthodes sont invoquées en fonction du cycle de vie d'un servlet A la création et à la destruction d'un contexte (une appli) javax.servlet.servletcontextlistener Quand on modifie les attributs du contexte javax.servlet.servletcontextattributelistener A la création, la suppression, le timeout d'une session javax.servlet.httpsessionlistener A la création, modification, suppression d'un attribut de session javax.servlet.httpsessionattributelistener 84 CC by-nc-sa

85 Pourquoi des listeners? Pour une application Web Pas de point d entrée (main) Pas d exit() Comment faire pour initialiser l application? Pour une session Possibilité de démarrer à plusieurs adresses (bookmarks, recherche) Comment initialiser la session? Pas de fin de session explicite. Comment terminer la session? 85 CC by-nc-sa

86 Les listeners du contexte ServletContextListener void contextdestroyed(servletcontextevent sce) Notification that the servlet context is about to be shut down. void contextinitialized(servletcontextevent sce) Notification that the web application is ready to process requests. ServletContextAttributeListener void attributeadded(servletcontextattributeevent scab) Notification that a new attribute was added to the servlet context. void attributeremoved(servletcontextattributeevent scab) Notification that an existing attribute has been remved from the servlet context. void attributereplaced(servletcontextattributeevent scab) Notification that an attribute on the servlet context has been replaced. 86 CC by-nc-sa

87 Les listeners de session HttpSessionListener Notification that a session was created. Notification that a session was invalidated. HttpSessionAttributeListener Notification that an attribute has been added to a session. Notification that an attribute has been removed from a session. Notification that an attribute has been replaced in a session. 87 CC by-nc-sa

88 La déclaration d un listener web.xml <listener> <listener-class> cours.exemple1.sessioncounter </listener-class> </listener> Il n est pas nécessaire de préciser le type du Listener (pourquoi?) 88 CC by-nc-sa

89 Exemple 89 CC by-nc-sa

90 Un autre exemple 90 CC by-nc-sa

91 Exemple (Servlet 3.0) avec déclarations 91 CC by-nc-sa

92 Ecrire une application Web Filtres 92 CC by-nc-sa

93 Les filtres Un filtre est un morceau de code exécuté entre la requête et le «endpoint» Permettent de faire du pre et post-processing sur une requête Lire la requête, modifier la requête modifier la réponse, retourner des erreurs au client Même cycle de vie qu un servlet init / dofilter / destroy 93 CC by-nc-sa

94 Intérêt des filtres Permettent d étendre l application sans changer les servlets Services transversaux en entrée et en sortie En entrée Log des appels Sécurité Contrôle des paramètres En sortie Post processing du flux (XSLT) Compression (gzip) Fonctionnent comme un pipe & filter 94 CC by-nc-sa

95 Coder un filtre () dofilter Implanter la méthode Déclarer le filtre web.xml : <Filter> <Filter-mapping> Servlet 3 Même fonctionnement que pour un servlet Le transfert à la suite de la chaine se fait par la fonction () chain.dofilter Transfert à un autre filtre ou à un servlet ou une page HTML ou une page JSP La suite s exécute au retour de dofilter 95 CC by-nc-sa

96 Exemple (généré par NetBeans) 96 CC by-nc-sa

97 PreProcessing Affichage des paramètres 97 CC by-nc-sa

98 PotsProcessing Ajout de texte dans la sortie 98 CC by-nc-sa

99 Le servlet filtré 99 CC by-nc-sa

100 L exécution Sur le serveur 100 CC by-nc-sa

101 Wrapping Principe : encapsuler l objet requête ou l objet réponse pour modifier son comportement Encapsulation de request : surcharge HttpServletRequestWrapper Encapsulation de reponse : surcharge de HttpServletRequestResponse Ensuite il suffit de remplacer l objet wrappé. Le Wrapping peut aussi être utilisé dans des Servlets normaux. 101 CC by-nc-sa

102 Le Wrapping des réponses Plus compliqué que pour les requêtes Nécessite de récupérer la réponse d abord Ou d écrire un Writer spécialisé Utilisations classiques Caching des réponses Compression des réponses 102 CC by-nc-sa

103 Ecrire une application Web Erreurs 103 CC by-nc-sa

104 La gestion des erreurs Il est possible de définir les pages à afficher En fonction d'erreurs http En fonction d'exceptions java Dans web.xml <error-page> <exception-type> cours.event.eventexception </exception-type> <location>/erreur.html</location> </error-page> Pour une exception java <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> 104 CC by-nc-sa Pour une erreur Http

105 Codes HTTP 100 : Continue : Attente de la suite de la requête 200 : OK : Requête traitée avec succès 201 : Created : Requête traitée avec succès avec création d'un document 204 : No Content : Requête traitée avec succès mais pas d'information à renvoyer 303 : See Other : La réponse à cette requête est ailleurs 400 : Bad Request : La syntaxe de la requête est erronée 401 : Unauthorized : Une authentification est nécessaire 403 : Forbidden : L'authentification est refusée 404 : Not Found : Document non trouvé 414 : Request-URI Too Long : URI trop longue 500 : Internal Server Error : Erreur interne du serveur 105 CC by-nc-sa

106 Ecrire une application Web Sécurité 106 CC by-nc-sa

107 Servlet et sécurité (from servlet spec) A web application contains resources that can be accessed by many users. These resources often traverse unprotected, open networks such as the Internet. In such an environment, a substantial number of web applications will have security requirements. Authentication Access Control Data Integrity 107 CC by-nc-sa

108 Sécurité The Servlet Container support declarative security and programmatic security. Declarative : Security policies are declared in deployement descriptor (web.xml) or as annotation Programmatic security allow servlet developers to directly interact with security API of the container. Use it carefully (only if declarative security is not sufficient) 108 CC by-nc-sa

109 Declarative security <security-constraint> <web-resource-collection> <web-resource-name>salesinfo </web-resource-name> <url-pattern>/salesinfo/*</url-pattern> <http-method>get</http-method> <http-method>post</http-method> </web-resource-collection> <auth-constraint> <role-name>manager</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>confidential </transportguarantee> </user-data-constraint> </security-constraint> 109 CC by-nc-sa

110 Security constraints 110 CC by-nc-sa

111 Modèle de sécurité Basé sur des rôles Groupes d utilisateurs Accès aux servlet/méthodes Ne fournit pas de gestion fine des droits d accès aux donnés Au déploiement, les rôles sont mappé sur des groupes sun-applicaton.xml (glassfish) <security-role-mapping> <role-name>pouet</role-name> <group-name>utilisateur</group-name> </security-role-mapping> 111 CC by-nc-sa

112 Security model Les users ayant endossé le rôle «pouet» ont le droit de requéter /World Peut être changé par le «deployer» 112 CC by-nc-sa

113 Le rôle «pouet» est associé au groupe «pouet» déclaré sur glassfish, pour l'application web MyHello 113 CC by-nc-sa

114 Gestion des utilisateurs (Tomcat) Propre au container web Tomcat : De manière statique dans le $TOMCAT_HOME/conf/tomcatusers.xml <tomcat-users> <role rolename="chat"/> <role rolename="souris"/> <user username="tom" password="miaou" roles="chat"/> <user name="admin" password="pw" roles="chat,souris" /> </tomcat-users> 114 CC by-nc-sa

115 Gestion des utilisateurs Définis dans un domaine FileRealm JDBCRealm CustomRealm LDAPRealm, CC by-nc-sa

116 Déclarer les users dans le «runtime» 116 CC by-nc-sa

117 Authentication A web client can authenticate a user to a web server using one of the following mechanisms: HTTP(S) Basic Authentication HTTP Digest Authentication HTTP(S) Client Authentication Form Based Authentication Programmatic Authentication 117 CC by-nc-sa

118 Authentication : Basic Couple username / password Définie par la spécification HTTP/1.0 Pas sécurisé passwords envoyé en encoding base64 le serveur cible n est pas authentifié Requière HTTPS ou IPSEC/VPN pour assurer plus de sécurité 118 CC by-nc-sa

119 Security model Contrainte de sécurité 119 CC by-nc-sa Authentication «BASIC» Déclaration de rôle

120 Accès sécurisé à la servlet «World» 120 CC by-nc-sa

121 Authentication : Digest <login-config> <auth-method>digest</auth-method> <realm-name>digest Authentication Example</realm-name> </login-config> Similaire à l authentication basic Couple username / password Gestion des utilisateurs par le container web Password non transmis Le navigateur envoi un digest : hash cryptographié du username/ password/uri/nonce (usage unique) Danger : stockage des passwords en clair pour calculer le digest Peu implanté 121 CC by-nc-sa

122 Authentication «form login» web.xml <login-config> <auth-method>form</auth-method> <form-login-config> <form-login-page>/pagedelogin.jsp</form-login-page> <form-error-page>/pagederreur.jsp</form-error-page> </form-login-config> </login-config> pagedelogin.jsp <form action="j_security_check" method="post"> <input type="text" name="j_username"/> <input type="password" name="j_password"/> <input type="submit" value="connexion"/> </form> 122 CC by-nc-sa

123 David Geary Nov 30, CC by-nc-sa

124 Authentication «form login» Même problèmes que l authentication BASIC password transmis en clair Stockage des password côté serveur Gestion des utilisateurs par le container Requière aussi HTTPS ou IPSEC/VPN pour assurer plus de sécurité 124 CC by-nc-sa

125 Authentication «programmatique» Methodes de l interface HttpServletRequest (J EE 6) : authenticate() Demande au container d effectuer l authentification login() avec login/password logout() getremoteuser() Nom de l utilisateur (null si personne) isuserinrole() getuserprincipal() Retourne le java.security.principal correspondant à l utilisateur 125 CC by-nc-sa

126 Sécurité et annotation (servlet 3) Annotation sur une servlet OU une do-méthode (doget, doput, dohead, ) Déclaration des ("role1") "role2"}) Mode de transport (HTTPS ou 126 CC by-nc-sa

127 Sécurité et annotation @TransportProtected public class TestServlet extends HttpServlet protected void dopost(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException protected void dotrace(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException {... } } 127 CC by-nc-sa

128 Accès sécurisé à une méthode @TransportProtected public class TestServlet extends HttpServlet protected void dopost(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException {... } protected void dotrace(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException {... } } 128 CC by-nc-sa

129 Conclusion Servlet 129 CC by-nc-sa

130 Conclusion The servlet model is a component model Servlet developpers have to conform to the model (implements HttpServlet class) The Servlet container offers: Web application lifecycle management Distributed container Security management Servlet composition (by dispatching) Interception (through filters) Session management facilities 130 CC by-nc-sa

131 What we have not seen Distributed Servlet container over a cluster of computers Asynchronous servlet (Servlet 3.0) Web Fragment : Make Web application by composition web application fragment CC by-nc-sa

132 Servlet limitations Request/Response model can decrease maintainability... The business logic of application are in servlets HTML code or XHTML code is embedded in servlet... Need an higher abstraction level to leverage maintainability problems To speed up coding stage (RAD, rapid application development) CC by-nc-sa

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 développement d applications Web. François Charoy Pascal Molli Pascal Urso

Le développement d applications Web. François Charoy Pascal Molli Pascal Urso Le développement d applications Web François Charoy Pascal Molli Pascal Urso License Creative Commons Cette création est mise à disposition selon le Contrat Paternité-Pas d'utilisation Commerciale-Partage

Plus en détail

Le développement d applications Web. François Charoy Pascal Molli Pascal Urso

Le développement d applications Web. François Charoy Pascal Molli Pascal Urso Le développement d applications Web François Charoy Pascal Molli Pascal Urso License Creative Commons! Cette création est mise à disposition selon le Contrat Paternité-Pas d'utilisation Commerciale-Partage

Plus en détail

Environnements de Développement

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

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique - 2010-2011

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique - 2010-2011 1 / 34 Développement Web - Servlet Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique - 2010-2011 2 / 34 Plan Plan 1 Introduction 2 Servlet

Plus en détail

Applications Web. Cours 2: Introduction J2EE Servlets et JSP. Khaled Khelif

Applications Web. Cours 2: Introduction J2EE Servlets et JSP. Khaled Khelif Applications Web Cours 2: Introduction J2EE Servlets et JSP Khaled Khelif 1 Rappel Web statique vs. Web dynamique Principe des applications web Protocole HTTP : requêtes en mode texte Développement d applications

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

Programmation servlet

Programmation servlet Programmation servlet Olivier Aubert 1/23 Références http://developer.java.sun.com/developer/onlinetraining/servlets/fundamenta http://www.servlets.com http://java.sun.com/products/jsp/index.html http://www.servletcentral.com/

Plus en détail

Applications Web (Java)

Applications Web (Java) Applications Web (Java) Mohamed Quafafou 4A Polytech'Marseille mohamed.quafafou@univ-amu.fr 1 Servlets [Bases Exemples] 2 Java Servlets Java Servlet est une extension générique de serveur qui signifie

Plus en détail

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur Plan Environnement Client/Serveur Cours 7 JavaServer Pages (1) kn@lri.fr 7.1 Principe 7.2 Rappels HTTP 7.3 Le serveur web Tomcat Programmation Web coté serveur JSP 2/28 (rappel) génération de pages-web

Plus en détail

Les servlets Le langage Java Les Servlets XVII-1 JMF

Les servlets Le langage Java Les Servlets XVII-1 JMF Les Servlets XVII-1 servlet =? Une servlet est un programme (plug-in) à ajouter à un serveur (quel qu'il soit). Ce cours a trait à la programmation Java coté serveur (J2EE ) Pour l'instant les serveurs

Plus en détail

Implémentée sous forme de JavaBean ou EJB, c est dans cette couche que l on retrouve l ensemble des traitements d une application.

Implémentée sous forme de JavaBean ou EJB, c est dans cette couche que l on retrouve l ensemble des traitements d une application. Introduction Nous allons parler, dans ce document consacré aux architectures multi-tiers en environnement J2EE, de 3 des cinq couches les plus représentatives. Faisons tout d'abord un petit rappel sur

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

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

Partie 2.2: Servlet et Tomcat

Partie 2.2: Servlet et Tomcat Partie 2.2: Servlet et Tomcat 1 Plan du cours Servlets Présentation Exemple 2 Plan du cours Tomcat Des servlets à Tomcat: pourquoi Tomcat? Architecture Tomcat Installation et configuration de Tomcat Configuration

Plus en détail

NOUVELLES TECHNOS DU WEB INTRODUCTION. LI385 - Nouvelles Technologies du web

NOUVELLES TECHNOS DU WEB INTRODUCTION. LI385 - Nouvelles Technologies du web NOUVELLES TECHNOS DU WEB INTRODUCTION LI385 - Nouvelles Technologies du web Me contacter Jean-Loup Guillaume Jean-loup.guillaume@lip6.fr 0144278844 Les supports sur : http://jlguillaume.free.fr/www/ Contenu

Plus en détail

AP-5 TD n 2 J2EE 5 novembre 2013

AP-5 TD n 2 J2EE 5 novembre 2013 Objectifs Prérequis Gestion des informations temporaires, sessions et cookies JSP et servlets, mise en place d un contrôleur Java Runtime Environnement (http://www.java.com/fr/download/) (JRE Java 7) IDE

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 42 Chapitre 8 Développement d applications Web Amélie Lambert 2014-2015 2 / 42 Plan du cours Typologie des applications Web Architecture

Plus en détail

TP 3 Outils de programmation Web

TP 3 Outils de programmation Web TP 3 Outils de programmation Web L'objectif de ce TP est de bien comprendre et maîtriser la technologie des servlets. La maîtrise de ces briques de base doit vous permettre de construire de larges applications

Plus en détail

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

Applications Web et servlets Java

Applications Web et servlets Java Département de génie logiciel et des TI LOG660 - Base de données haute performance Applications Web et servlets Java Application Web Une application Web répartie sur trois couches (three-tier Web application)

Plus en détail

JSP/Servlets Enchaînement de pages. B. Mermet 2009

JSP/Servlets Enchaînement de pages. B. Mermet 2009 JSP/Servlets Enchaînement de pages B. Mermet 2009 Spécification d'une adresse cible Adresse absolue protocole://adresse Adresse relative à l'application /adressepage Adresse relative à la page adressepage

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

Programmation Web. Thierry Hamon

Programmation Web. Thierry Hamon 1/27 Programmation Web Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

TD4 : Wikis, Servlets & Projet

TD4 : Wikis, Servlets & Projet Université Bordeaux 1 T.D. License 3 Informatique 2007 2008 TD4 : Wikis, Servlets & Projet L objet de cette séance est de vous familiariser avec les sockets et les servlets, et d introduire le projet.

Plus en détail

Développement des Systèmes d Information

Développement des Systèmes d Information Développement des Systèmes d Information Axe ISI Camille Persson Institut Fayol / LSTI / ISCOD École Nationale Supérieure des Mines de Saint-Etienne 158 cours Fauriel, 42000 Saint-Etienne persson@emse.fr

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

EISTI 2008-2009 Examen Java EE. Q1 : cycle de vie d un servlet (2 points)

EISTI 2008-2009 Examen Java EE. Q1 : cycle de vie d un servlet (2 points) EISTI 2008-2009 Examen Java EE 1h30 Aucun document autorisé NOM : PLACE : PRENOM : GROUPE TD : Q1 : cycle de vie d un servlet (2 points) Donnez le diagramme d état représentant le cycle de vie d un servlet

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

La plate-forme J2EE LPRO CMSII. Olivier Flauzac. olivier.flauzac@univ-reims.fr

La plate-forme J2EE LPRO CMSII. Olivier Flauzac. olivier.flauzac@univ-reims.fr La plate-forme J2EE LPRO CMSII Olivier Flauzac olivier.flauzac@univ-reims.fr Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 1 / 71 Plan 1 Java? 2 Architecture des applications

Plus en détail

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur Java EE Cours 1 Présentation Générale Cours de 2 e année ingénieur 1 Présentation du cours Objectifs Développement d applications Web robustes «Ne pas réinventer la roue» utilisation d un framework 1 Apprentissage

Plus en détail

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement OBJECTIFS Historiquement,

Plus en détail

SIMOTION - Servlets. Introduction 1. Fonctions implémentées 2. Contenu de la livraison 3. Installation 4. Implémentation de l'api Servlet

SIMOTION - Servlets. Introduction 1. Fonctions implémentées 2. Contenu de la livraison 3. Installation 4. Implémentation de l'api Servlet Introduction 1 Fonctions implémentées 2 Contenu de la livraison 3 Installation 4 Manuel de programmation Implémentation de l'api Servlet 5 Elaboration de servlets utilisateur 6 Fichier de configuration

Plus en détail

6. JSP. Cours Web. Java Server Pages (JSP) 6. JSP 6. JSP. Java Server Pages (JSP) Lionel Seinturier. Université Pierre & Marie Curie

6. JSP. Cours Web. Java Server Pages (JSP) 6. JSP 6. JSP. Java Server Pages (JSP) Lionel Seinturier. Université Pierre & Marie Curie Cours Web Java Server Pages (JSP) Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr 11/7/02 Java Server Pages (JSP) Programme Java s'exécutant côté serveur Web servlet prog. "autonome"

Plus en détail

Plugin Payment-OnLine

Plugin Payment-OnLine Plugin Payment-OnLine Le plugin "Payment-Online" est un plugin technique dont l'objectif est de faciliter l'utilisation du paiement en ligne dans des applications Lutèce. Il se compose d'une librairie

Plus en détail

Descripteur de déploiement

Descripteur de déploiement Chapitres traités Application Web Descripteur de déploiement Lorsque nous avons étudiés les servlets, nous avons déjà rencontrés et utilisés les descripteurs de déploiement. Dans ce chapitre, nous allons

Plus en détail

Tarak CHAARI Application Web en Java ISECS 2

Tarak CHAARI Application Web en Java ISECS 2 Programmation d Application Web avec Java Tarak CHAARI Tarak.chaari@isecs.rnu.tn Université de Sfax, 2009-20102010 Tarak CHAARI Application Web en Java Version adaptée ISECS du cours de Mr Walid MAHDI

Plus en détail

Les Servlets. Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) Servlets 1 / 69

Les Servlets. Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) Servlets 1 / 69 Les Servlets Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE Thierry Lecroq (Univ. Rouen) Servlets 1 / 69 Plan 1 Introduction 2 API 3 Paramètres 4 Encodage 5 Filtrage

Plus en détail

Applications Réparties. Département Sciences Informatiques SI 4 ème année

Applications Réparties. Département Sciences Informatiques SI 4 ème année Applications Réparties Département Sciences Informatiques SI 4 ème année 1 Applications Réparties? Ensemble de processus (objets, agents, acteurs) qui: Communiquent entre eux via un réseau Evoluent de

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

Telecommunication Services Engineering (TSE) Lab

Telecommunication Services Engineering (TSE) Lab Chapitre 3: La toile Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ Application Couche Application Transport Réseau Liaison de données Support

Plus en détail

LSI2 Programmation Web TP n 4 du 17 décembre 2007

LSI2 Programmation Web TP n 4 du 17 décembre 2007 Page 1 sur 6 LSI2 Programmation Web TP n 4 du 17 décembre 2007 Corrigé des TPs précédents Le code source de la solution est fourni dans un fichier.zip téléchargeable à l adresse http://www.isitix.com/enssat/enssat20071217.zip

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

Partie 7 : Le développement d'applications web

Partie 7 : Le développement d'applications web Partie 7 : Le développement d'applications web Cette partie contient plusieurs chapitres : Les servlets : plonge au coeur de l'api servlet qui est un des composants de base pour le développement d'applications

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

Plan. La plate-forme J2EE. Plan J2SE. Standard Edition. Master Informatique 2ème année. Olivier Flauzac. olivier.flauzac@univ-reims.

Plan. La plate-forme J2EE. Plan J2SE. Standard Edition. Master Informatique 2ème année. Olivier Flauzac. olivier.flauzac@univ-reims. Plan La plate-forme J2EE Master Informatique 2ème année Olivier Flauzac olivier.flauzac@univ-reims.fr Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 1 / 64 Olivier Flauzac (URCA)

Plus en détail

1 Introduction à Apache Maven

1 Introduction à Apache Maven IUT Bordeaux 1 - Département Informatique Semestre 4 JEE 20112012 TP JEE (0) Introduction à MAVEN 1 Introduction à Apache Maven Les projets Java (surtout JEE) ont la particularité de dépendre de beaucoup

Plus en détail

J2EE. A.-E. Ben Salem. 09 Octobre 2011. LRDE and LIP6 1 / 15

J2EE. A.-E. Ben Salem. 09 Octobre 2011. LRDE and LIP6 1 / 15 J2EE A.-E. Ben Salem LRDE and LIP6 09 Octobre 2011 1 / 15 Plan 1 J2EE 2 Architecture Client/Serveur HTTP 3 Différence entre Web Statique et Web Dynamique 4 Web Dynamique avec un Serveur d applications

Plus en détail

Application distribuée via HTTP Mise en œuvre minimale...

Application distribuée via HTTP Mise en œuvre minimale... Module RX : distrib/http Application distribuée via HTTP Mise en œuvre minimale... Problème de la distribution Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/

Plus en détail

Module Client Serveur Web 2006 Cours, TD et TP sur PHP et Tomcat

Module Client Serveur Web 2006 Cours, TD et TP sur PHP et Tomcat Prénom : Module Client Serveur Web 2006 Cours, TD et TP sur PHP et Tomcat Nom : Merci de répondre aux questions fermées directement sur la présente feuille et aux questions ouvertes sur une feuille indépendante

Plus en détail

Le Web. Présentation du langage HTML et du protocole HTTP

Le Web. Présentation du langage HTML et du protocole HTTP Le Web Présentation du langage HTML et du protocole HTTP Une petite histoire du web 1989 1ère note relative au web «hypertexte et le CERN» au sujet du World Wide Web. 1991 premier serveur web sur l Internet,

Plus en détail

Java Spring Le socle technique des applications JEE

Java Spring Le socle technique des applications JEE Avant-propos 1. Préambule 15 2. Introduction 17 3. Organisation du livre 19 4. Public visé 19 5. Pourquoi Spring 20 6. Prérequis pour aborder sereinement la lecture de ce livre 20 7. Objectifs du livre

Plus en détail

WWW - Intérêts du Web

WWW - Intérêts du Web WWW - Intérêts du Web client universel facilité d'emploi standards ouverts intégration des autres services Internet extensibilité du système faibles coûts logiciel et réseau utilisation au sein d'une entreprise

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

Travaux Pratiques (Licence Pro) Servlet/JSP (MVC) & Web Services. --- Site Web d un club de tennis

Travaux Pratiques (Licence Pro) Servlet/JSP (MVC) & Web Services. --- Site Web d un club de tennis Travaux Pratiques (Licence Pro) Servlet/JSP (MVC) & Web Services --- Site Web d un club de tennis ETAPE 1 : Services locaux ( servlets / JSP ) Services offerts par le site web a chaque adhérent du club

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

Tarak CHAARI Application Web en Java ISECS 2

Tarak CHAARI Application Web en Java ISECS 2 Programmation d Application Web avec Java Tarak CHAARI tarak.chaari@isecs.rnu.tn Université de Sfax, 2009-20102010 Tarak CHAARI Application Web en Java Version adaptée ISECS du cours de Mr Walid MAHDI

Plus en détail

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux Avant-propos 1. À qui s adresse ce livre? 11 2. Les pré-requis 12 Préambule 1. Rappel sur les architectures Internet/Intranet/Extranet 13 1.1 Le protocole HTTP 14 1.1.1 Les méthodes HTTP 16 1.1.2 Les codes

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

SQLI. Solution Santé. IdeoSSO - Intégration d'un client IdeoSSO 22/10/2007. Confidentiel SQLI Solution Santé 28/03/2008 P 1/35

SQLI. Solution Santé. IdeoSSO - Intégration d'un client IdeoSSO 22/10/2007. Confidentiel SQLI Solution Santé 28/03/2008 P 1/35 SQLI Solution Santé IdeoSSO - Intégration d'un client IdeoSSO 22/10/2007 Confidentiel SQLI Solution Santé 28/03/2008 P 1/35 Historique Historique des versions du document Version / Date Auteur Commentaire

Plus en détail

Cours Web : Introduction

Cours Web : Introduction Cours Web : Introduction Catherine Letondal letondal@pasteur.fr Institut Pasteur Cours Web IEB 2005 p.1/?? Pourquoi un cours Web? le Web : c est stratégique en biologie c est un bon exemple de système

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

http://www.sigl.epita.net Struts Struts Romain Couturier Aurélia Fermé Frédéric Lung Tung Matthieu Nicolas 17/06/2002 17/06/2002 ACO slide 1

http://www.sigl.epita.net Struts Struts Romain Couturier Aurélia Fermé Frédéric Lung Tung Matthieu Nicolas 17/06/2002 17/06/2002 ACO slide 1 http://www.sigl.epita.net Romain Couturier Aurélia Fermé Frédéric Lung Tung Matthieu Nicolas slide 1 Plan Rappels Servlet JSP JavaBean MVC (1 & 2) Présentation Vue Contrôleur Modèle Exemple d application

Plus en détail

ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014

ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 ARCHITECTURE REST & WEB SERVICES Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 1 Introduction Présentation de Rest Serveur Java JAX-RS Démonstration 2 Introduction Présentation de Rest

Plus en détail

TP2. Mail et servlet. Quel port utilise smtp? A quoi servent les commandes HELO, MAIL FROM:, RCPT TO:, DATA?

TP2. Mail et servlet. Quel port utilise smtp? A quoi servent les commandes HELO, MAIL FROM:, RCPT TO:, DATA? Université Paris 7 M2 II Protocole Internet 1 Protocole SMTP TP2 Mail et servlet 1. Le protocole SMTP est définit dans la RFC 821 (mise à jour dans la RFC 2821). Le format des messages est spécifié dans

Plus en détail

Le Suivi de session sous J2EE

Le Suivi de session sous J2EE J2EE : Suivi de Sessions Jean-Noël Sorenti. Année 2002/2003 Le Suivi de session sous J2EE ISI 1022 : 1 J2EE : Suivi de Sessions Une application Web peut avoir besoin de conserver des informations avec

Plus en détail

Java EE. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» fabien.romeo@fromeo.fr http://www.fromeo.fr

Java EE. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» fabien.romeo@fromeo.fr http://www.fromeo.fr Java EE Cours de 2 e année ingénieur Spécialisation «Génie Informatique» fabien.romeo@fromeo.fr http://www.fromeo.fr Présentation du cours Pôle GL-I2 «Génie logiciel avancé» 20h sur 8 semaines Objectifs

Plus en détail

Ala Eddine BEN SALEM. T.P. 2 Servlet

Ala Eddine BEN SALEM. T.P. 2 Servlet EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 2 Servlet 1. Création d'un projet Web: A l'aide d'eclipse, créer un nouveau projet «sampleservlet» avec comme environnement d'exécution le serveur Tomcat installé

Plus en détail

Programmation du Web : Présentation du Web dynamique

Programmation du Web : Présentation du Web dynamique Programmation du Web : Présentation du Web dynamique Jean-Baptiste Vioix (Jean-Baptiste.Vioix@u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-8 Présentation Nécessité du web dynamique

Plus en détail

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre

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

Technologies du Multimédia et du Web

Technologies du Multimédia et du Web 3 ème Année Licence appliquée Technologies du Multimédia et du Web MoezBEN HAJ HMIDA ISSAT Sousse 2009/2010 Plan Les systèmes e-services Évolution des architectures d applications Les architectures client/serveur

Plus en détail

Une introduction à la technologie EJB

Une introduction à la technologie EJB Une introduction à la technologie EJB 1 Introduction La technologie des EJB (pour Enterprise Java Bean) ont été introduite en 1998 pour offrir aux programmeurs un outil qui facilite la conception et le

Plus en détail

Objectif : Etudier la configuration du contexte d exécution

Objectif : Etudier la configuration du contexte d exécution EJB avancés Objectif : Etudier la configuration du contexte d exécution Sa mise en œuvre implicite Et explicite Transactions Sécurité Timer Récapitulatif Performances Les transactions Concept fondamental

Plus en détail

Kit d'intégration FAS+

Kit d'intégration FAS+ Guide d'intégration de l'application IAM - Annexe Kit d'intégration FAS+ Date 24/08/2012 Version 3.0 TABLE DES MATIÈRES 1 Introduction...3 2 Kit d'intégration FAS+...3 2.1 Pages JSP...4 2.2 Classes Java...7

Plus en détail

Programmation Web Avancée JSP

Programmation Web Avancée JSP 1/50 Programmation Web Avancée JSP Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète Nous allons écrire une application J2EE qui permet dans un navigateur web de gérer des contacts. Pour cela, nous allons suivre

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. M2 CDS2I - 4 février 2010

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. M2 CDS2I - 4 février 2010 1 / 24 Développement Web - Servlet Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer M2 CDS2I - 4 février 2010 2 / 24 Plan Plan 1 2 Le modèle MVC 3 Structure

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 52

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 52 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 52 Chapitre 10 Le langage JavaServer Pages (JSP) et le modèle de composants Java (Java beans) Amélie Lambert 2014-2015 2 / 52 Plan du

Plus en détail

Serveurs Web dynamiques

Serveurs Web dynamiques Serveurs Web dynamiques Daniel Hagimont Laurent Broto IRIT/ENSEEIHT 27 février 2011 1 / 50 Copyright (c) 2010 Daniel Hagimont & Laurent Broto. Permission is granted to copy, distribute and/or modify this

Plus en détail

[ Hornet ] Guide de migration d'un projet Acube vers Hornet

[ Hornet ] Guide de migration d'un projet Acube vers Hornet [ Hornet ] Guide de migration d'un projet Acube vers Hornet 3.6B Cette création est mise à disposition selon le Contrat Paternité - Pas d'utilisation Commerciale - Partage des Conditions Initiales à l'identique

Plus en détail

Traitement et navigation

Traitement et navigation 12 Traitement et navigation Au chapitre précédent, nous avons vu comment créer des pages web avec différentes technologies (HTML, JSP, JSTL, etc.) en insistant sur le fait que JSF est la spécification

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

Programmation JAVA / J2EE

Programmation JAVA / J2EE Programmation JAVA / J2EE Auteur : François-Xavier SENNESAL Web: www.sennesal.fr Email: 1 SOMMAIRE 1. Rappels sur les fondamentaux du web 2. Mise en place de l environnement 3. Fondamentaux du langage

Plus en détail

Appli et Services WEB: Architecture REST

Appli et Services WEB: Architecture REST Appli et : Erick Stattner LAMIA Laboratory University of the French West Indies and Guiana, France erick.stattner@univ-ag.fr Guadeloupe, 2013 Erick Stattner Appli et : 1 / 78 Description du cours Objectif:

Plus en détail

TP 2 : programmation côté serveur À rendre pour le mardi 6 mai 2008

TP 2 : programmation côté serveur À rendre pour le mardi 6 mai 2008 Université Claude Bernard Lyon 1 UFR d informatique avril 2006 MIAG soir Systèmes d Information Méthodes Avancées TP 2 : programmation côté serveur À rendre pour le mardi 6 mai 2008 Introduction Dans ce

Plus en détail

Architectures n-tiers et applications Web Outils Java et applications Web Servlets État d un servlet Les JSP Accès aux BD avec servlets Conception

Architectures n-tiers et applications Web Outils Java et applications Web Servlets État d un servlet Les JSP Accès aux BD avec servlets Conception Plan 93 Architectures n-tiers et applications Web Outils Java et applications Web Servlets État d un servlet Les JSP Accès aux BD avec servlets Conception Application Web en Java 94 Intérêts de Java et

Plus en détail

Cours Serveurs d application. et Java avancé. Introduction au cours Serveurs d application. et Java avancé. Prérequis / Objectifs.

Cours Serveurs d application. et Java avancé. Introduction au cours Serveurs d application. et Java avancé. Prérequis / Objectifs. Cours Serveurs d application et Java avancé Introduction au cours Serveurs d application et Java avancé ITU Université de Nice Richard Grin Version O 1.0.1 12/4/14 20 h de cours et TPs Richard Grin, université

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 38 NFP111 Systèmes et Applications Réparties Cours 11 - Les Enterprise Java Beans (Introduction aux Enterprise Claude Duvallet Université du Havre UFR Sciences

Plus en détail

Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr

Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr Prérequis PraDque de JavaScript Compréhension de l'architecture client- serveur web rôle du client vs. rôle du serveur protocole HTTP

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

Langages et technologies du Web 1

Langages et technologies du Web 1 Langages et technologies du Web 1 Manuel ATENCIA manuel.atencia-arcas@upmf-grenoble.fr Objectifs Comprendre le fonctionnement du World Wide Web Produire des documents web statiques et dynamiques 1 2 vocabulaire

Plus en détail

Bypass et filtre sur les requêtes destinées à la servlet W4

Bypass et filtre sur les requêtes destinées à la servlet W4 Note technique W4 Engine Bypass et filtre sur les requêtes destinées à la servlet W4 Cette note technique décrit le filtre de contrôle du bypass de la servlet W4. Versions de W4 Engine concernées : 5.0

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 2 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

Problématique. Développement Web 2. Problématique. Jetty Création d un serveur Web

Problématique. Développement Web 2. Problématique. Jetty Création d un serveur Web Communication client/serveur Comet Problématique Problématique Développement Web 2 Problématique : Nous souhaitons réaliser un tchat Les clients se connectent au serveur; Les clients peuvent discuter;

Plus en détail

Bases de données et Sites Web. Li345

Bases de données et Sites Web. Li345 Bases de données et Sites Web. Li345 Remerciements à: Stéphane Gançarski et Philippe Rigaux. Ces transparents sont fortement inspirés du très bon livre : Pratique de MySQL et PHP, troisième édition Philippe

Plus en détail

Accéder à des services web RestFul

Accéder à des services web RestFul Accéder à des services web RestFul c 'est quoi un «service web» des fonctionnalités d'une application exposées et accessibles à distance au travers d'une api construite au dessus de http (i.e. Avec des

Plus en détail

APPLICATIONS JAVA. 3. JSP Java Server Pages. JSP - Java Server Pages Servlet. http://139.124.26.245/pi. Java Server Pages (JSP) IvMad, 2011-2013 2

APPLICATIONS JAVA. 3. JSP Java Server Pages. JSP - Java Server Pages Servlet. http://139.124.26.245/pi. Java Server Pages (JSP) IvMad, 2011-2013 2 APPLICATIONS JAVA JSP - Java Server Pages Servlet Java Server Pages (JSP) IvMad, 2011-2013 2 3. JSP Java Server Pages http://139.124.26.245/pi Java Server Pages (JSP) IvMad, 2011-2013 3 JSP - Introduction

Plus en détail

C est quoi JSP? JSP = Java Server Pages

C est quoi JSP? JSP = Java Server Pages JSP = Java Server Pages C est quoi JSP? Une JSP est un fichier contenant du code HTML et des fragments de code Java exécutés sur le moteur de Servlets Comparable aux langages côtés serveur de type PHP,

Plus en détail