Applications Web avec Java - PowerPoint PPT Presentation

1 / 75
About This Presentation
Title:

Applications Web avec Java

Description:

2 : le serveur accepte la connexion re oit la requ te, retrouve les informations ... 2 : le serveur accepte la connexion re oit la requ te, retrouve les informations ... – PowerPoint PPT presentation

Number of Views:1504
Avg rating:3.0/5.0
Slides: 76
Provided by: dous
Category:

less

Transcript and Presenter's Notes

Title: Applications Web avec Java


1
Applications Web avec Java
  • AgroParisTech Module 2A

Duke
2
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Servlets JSP
  • Structurer une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

3
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Servlets JSP
  • Structurer une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

4
Les différents types dapplis
  • Applications autonomes

Données
Exécutable
5
Les différents types dapplis
  • Applications déportées

Données
Gestionnaired'écrans
Terminal ouémulateur
6
Les différents types dapplis
  • Applications client/serveur

Données
Exécutable
7
Les différents types dapplis
  • Applications client/serveur distribuées ou 3-tiers

Données
Exécutable
Exécutable
8
Les différents types dapplis
  • Les applications client léger ou applications web

Données
NavigateurHTML/Javascript
Serveurd'applications
9
Applications Java
AWT Swing SWT
  • Java permet de réaliser tous les types
    d'applications
  • Mais les interfaces utilisateur développées en
    Java sont relativement peu performantes
  • Par contre, Java est très adapté pour réaliser
    des applications Web
  • développer sous Windows, déployer sous UNIX
  • richesse des programmes et API disponibles
  • peu dimpacts sur les performances

10
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Structurer d'une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

11
Historique du Web
  • Le Web à l'origine
  • permet d'accéder à des pages d'informations
    reliées par des liens hypertextes
  • nécessite uniquement la présence d'un navigateur
    Web sur le poste de l'utilisateur
  • permet de générer des pages dynamiquement pour
    des applications spécifiques et limitées (ex
    moteur de recherche)

12
Outils du web à lorigine
  • Editeurs de pages HTML/Javascript
  • Microsoft FrontPage
  • Macromédia DreamWeaver
  • NVU
  • Transfert de pages
  • FTP
  • webdav

FTP WebDav
13
Evolution du Web
  • Développement des pages dynamiques
  • générées à partir d'une base de données pas
    besoin d'écrire des centaines de pages HTML (ex
    site de presse)
  • apportent un contenu personnalisé à l'utilisateur
    (ex Mon Yahoo!)
  • ne nécessitent pas d'installation sur le poste de
    l'utilisateur(ex annuaire de l'école)

HTML
14
Technologies du web dynamique
  • 3 solutions
  • ASP (.Net)
  • Active Server Page
  • fonctionne uniquement avec un serveur MS Windows
  • PHP
  • PHP Hypertext Processor
  • gratuit communauté libre
  • fonctionne avec tout type de serveur
  • simple à apprendre
  • limité (mais nouvelles versions)

ASP PHP
15
Technologies du web dynamique
  • 3 solutions
  • Java Servlets/JSP
  • gratuit , mais sous la houlette de Sun
  • fonctionne avec tout type de serveur
  • programmation objet structurée, modulaire et
    évolutive
  • richesse des interfaces
  • répandu dans les entreprises
  • peu dhébergements disponibles

servlet JSP
16
Web dynamique principes
Formulaire - champs de saisie - bouton de
validation
17
Web dynamique principes
Transmission des données du formulaire
Réponse à la demande
18
Web dynamique principes
2 le serveur accepte la connexion reçoit la
requête, retrouve les informations transmises et
recherche les données correspondantes
19
Web dynamique session
  • Le dialogue entre le navigateur et le serveur est
    déconnecté
  • 1 le navigateur se connecte au serveur Web
  • 2 le navigateur envoie une requête
  • 3 le serveur renvoie une réponse
  • 4 la connexion est rompue !
  • Comment assurer le  suivi de l'utilisateur  (ex
    webmail, panier dans un site de commerce) ?

20
Web dynamique cookies
2 le serveur accepte la connexion reçoit la
requête, retrouve les informations transmises et
recherche les données correspondantes.Il génère
également un cookie et garde en mémoire les
informations associées
21
Les applications Web en Java
  • Serveur web capable d'exécuter du Java
  • serveur d'application J2EE
  • web container J2EE
  • Un serveur J2EE est capable d'exécuter
  • des servlets classes Java exécutées côté
    serveur
  • des JSP
  • Java Server Pages
  • Fichiers de script qui  mélangent  du Java et
    du HTML/Javascript

J2EE
22
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Structurer d'une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

23
Tomcat
  • Un  conteneur web  (web container) J2EE
  • Implémentation Java de référence
  • Serveur open-source gratuit et multi-plateformes
    (écrit en Java)
  • Téléchargeable sur http//jakarta.apache.org/tomca
    t

24
Tomcat installation
  • Prérequis
  • nécessite un SDK
  • http//java.sun.com/j2se/1.4.2/download.html
  • Installation possible
  • programme dinstallation sous Windows
  • installation manuelle sous Linux après
    décompression de fichier darchive

25
Tomcat organisation générale
Exécutables
Classes Java communes à toutes les applications
Fichiers de configuration
Fichiers de logs (messages d'erreurs)
Emplacement par défaut des applications
26
Tomcat démarrage/arrêt
  • Avec Lomboz

27
Tomcat bon fonctionnement
  • http//localhost8080

28
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Servlets JSP
  • Structurer une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

29
Créer une Application Web
  • Dans Eclipse
  • Menu File gt New gt Project
  • Sélectionner Web gt Dynamic Web Project
  • Project name TestTomcat
  • Target runtime Apache tomcat V5.0
  • finish

30
Arborescence d'une application
31
TP1
  • Démarrer Tomcat sur le poste de travail
  • Tester le bon fonctionnement de l'application
  • Créer un projet TestTomcat
  • Créer une servlet, via les menus dEclipse, selon
    les indications données par lenseignant

32
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Servlets JSP
  • Structurer une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

33
Servlet création
  • Une servlet est une classe dérivée de
    javax.servlet.http.HttpServlet. On la trouve dans
    l'arborescence WEB-INF/src
  • Cette classe définit (surtout) 4 méthodes
  • init(ServletConfig)
  • doGet(HttpServletRequest, HttpServletResponse)
  • doPost(HttpServletRequest, HttpServletResponse)
  • destroy()

34
Servlet méthodes
  • init(ServletConfig) exécutée au chargement de
    la servlet
  • doGet(HttpServletRequest, HttpServletResponse) exé
    cutée à chaque connexion d'un navigateur
  • doPost(HttpServletRequest, HttpServletResponse)
    exécutée à chaque validation de formulaire
  • destroy() exécutée lors de l'arrêt du serveur

35
Servlet paramètres
  • Paramètre HttpServletRequest
  • encapsule la requête HTTP issue du navigateur
  • permet d'accéder aux valeurs du formulaire
    String nom request.getParameter( "nom")
  • Paramètre HttpServletResponse
  • encapsule la réponse renvoyée au navigateur
  • permet de générer par exemple du HTML
    PrintWriter out response.getWriter()out.prin
    tln("")out.close()

36
Servlet exemple simple
public class SimpleServlet extends HttpServlet
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException response.setCont
entType("text/html") PrintWriter out
response.getWriter() out.println("lthtmlgt") o
ut.println("ltbodygt") out.println("lth1gtBonjour
!lt/h1gt") out.println("lt/htmlgt") out.println(
"lt/bodygt") out.close()
http//localhost8080/TestTomcat/servlet/SimpleSer
vlet
37
Servlet avec un formulaire
  • Mentionner la servlet comme action dans le
    formulaire HTML
  • ltform name"Formulaire" method"post" 
    action"servlet/FormulaireServlet"gt
  • Entrez votre nom
  • ltinput type"text" name"nom"gt
  • ltinput type"submit" value"valider"gt
  • lt/formgt

http//localhost8080/TestTomcat/Formulaire.html
38
Servlet réponse au formulaire
  • La servlet récupère le nom et génère une page
    avec
  • public void doPost(HttpServletRequest request,
    HttpServletResponse response)
  • throws ServletException, IOException
  • String nom request.getParameter("nom")
  • response.setContentType("text/html")
  • PrintWriter out response.getWriter()
  • out.println("lthtmlgt")
  • out.println("ltbodygt")
  • out.println("lth1gtBonjour " nom " !lt/h1gt")
  • out.println("lt/htmlgt")
  • out.println("lt/bodygt")
  • out.close()

39
Servlet récapitulatif formulaire
1 le navigateur rassemble les informations du
formulaire, il se connecte au serveur et lui
transmet ces informations dans une requête HTTP
Formulaire.html
Servlet/FormulaireServlet
2 le serveur génère dynamiquement une page avec
le résultat, l'envoie en réponse HTTP au
navigateur
40
Servlet GET ou POST ?
  • Attribut method de la balise form
  • GET correspond à l'appel d'une page par le
    navigateur (barre d'adresse ou lien)Transmet les
    paramètres dans l'URL http//localhost8080/ser
    vlet/test?paramvalue
  • POST plus adapté au transfert de données depuis
    un formulaire
  • Une servlet peut déterminer ainsi si elle est
    appelée comme validation d'un formulaire ou non

Method POST Method GET
41
Servlet formulaire et traitement
  • public void doGet(HttpServletRequest request,
    HttpServletResponse response)
  • throws ServletException, IOException
  • // Méthode GET barre d'adresse
  • response.setContentType("text/html")PrintWriter
    out response.getWriter()
  • out.println("lthtmlgt")
  • out.println("lthtmlgt")
  • out.println("ltform name\"Formulaire\"
    method\"post\" action\"FormulaireServlet
    DeuxEnUn\"gt")
  • out.println("Entrez votre nom ")
  • out.println("ltinput type\"text\"
    name\"nom\"gt")
  • out.println("ltinput type\"submit\"
    value\"valider\"gt")
  • out.println("lt/formgt")
  • out.println("lt/htmlgt")
  • out.println("lt/bodygt")
  • out.close()

42
Servlet formulaire et traitement
  • public void doPost(HttpServletRequest request,
    HttpServletResponse response)
  • throws ServletException, IOException
  • // Méthode POST validation du formulaire
  • response.setContentType("text/html")
  • PrintWriter out response.getWriter()
  • out.println("lthtmlgt")
  • out.println("ltbodygt")
  • String nom request.getParameter("nom")
  • out.println("lth1gtBonjour " nom " !lt/h1gt")
  • out.println("lt/htmlgt")
  • out.println("lt/bodygt")
  • out.close()

43
Servlet récap formulaire/traitement
44
TP2
  • Dans le projet TestTomcat, développer une servlet
    qui demande un nombre à l'utilisateur et renvoie
    le calcul de la factorielle de ce nombre

45
Servlet session
  • L'objet requête passée en paramètre permet de
    fixer/retrouver des objets pour une session
    utilisateur
  • L'objet session est une collection d'objets
    associés à des clés

46
HttpSession
  • import javax.servlet.http.HttpSession
  • HttpSession session request.getSession()
  • MaClasse monObjet (MaClasse)session.getAttribute
    ("nom")
  • session.setAttribute("nom", monObjet)

47
Servlet exemple session
  • public void doGet(HttpServletRequest request,
    HttpServletResponse response) throws
    ServletException, IOException
  • HttpSession session request.getSession()
  • ArrayList listeCourse (ArrayList)
    session.getAttribute("listeCourse")
  • if (listeCourse null)
  • // La liste des courses de l'utilisateur n'a
    pas ete créée
  • session.setAttribute("listeCourse", new
    ArrayList())
  • //...

48
TP3
  • Ecrire une servlet qui initialise une somme à 0
    et demande un nombre via un formulaire
  • Ce nombre est ajouté à la somme renvoyée à
    l'utilisateur, auquel on demande aussi un nouveau
    nombre (affichage du résultat précédent et du
    formulaire sur la page)
  • Le nouveau nombre vient s'ajouter à la somme
  • Et ainsi de suite...

49
Les JSP
  • Inconvénients des servlets
  • générer du code HTML est fastidieux (plusieurs
    lignes de out.println("")
  • impossible d'utiliser les outils WYSIWYG HTML
    (Frontpage, Dreamweaver) pour concevoir la
    partie présentation des pages
  • Une solution les Java Server Pages !

JSP
50
JSP exemple
  • lt_at_ page session "true" gt
  • lt_at_ page buffer"none" gt
  • lt_at_ page import"java.util." gt
  • lt_at_ page import"java.text." gt
  • lthtmlgt
  • ltheadgt
  • lttitlegtTest JSPlt/titlegt
  • lt/headgt
  • ltbodygt
  • lt DateFormat df SimpleDateFormat.getInstance(
    ) gt
  • lth1gtMaintenant lt df.format(new Date())
    gtlt/h1gt
  • lt/bodygt
  • lt/htmlgt

51
JSP principe
  • Au lieu d' écrire du HTML dans une classe Java,
    on inclut du Java dans une page HTML
  • Des tags spécifiques
  • lt_at_ gt directives (imports, etc.)
  • lt gt code Java à exécuter
  • lt gt résultat Java à afficher
  • Des variables implicites request, response,
    session, etc.

tags request response
52
JSP exécution
  • Lors de la demande d'une page JSP
  • si c'est la première demande, ou si la page a été
    modifiée depuis la dernière demande, la page JSP
    est transformée automatiquement en servlet
  • le moteur de servlet exécute la servlet
    correspondante et renvoie le résultat de
    l'exécution

53
TP4
  • Ecrire une page JSP qui affiche la table de
    multiplication du nombre 7
  • Modifier cette page pour pouvoir passer le nombre
    dont on veut la table dans la requête
    http///multiplication.jsp?nombre5
  • Ajout dun fichier .jsp
  • Clic droit sur WebContent?JSP

54
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Servlets JSP
  • Structurer une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

55
Servlets JSP
  • Servlets
  • Adaptées pour programmer des traitements en Java
  • JSP
  • Adaptés pour réaliser l'affichage dans une page
    HTML
  • Conclusion il faut combiner servlets JSP !

56
Le modèle MVC
  • Consiste à séparer les différentes fonctions du
    logiciel
  • Séparation
  • Modèle les données manipulées par le logiciel
  • Vue l'affichage présenté à l'utilisateur
  • Contrôleur traite les actions de l'utilisateur

MVC
57
Le modèle MVC Web
Servlet contrôleur (réception/envoi des données)
1 Transmission des informations du formulaire
2 Traitements et instanciation des objet
Objet Java
Objet Java
Objet Java (traitement)
2 Transmission des objets à la page JSP pour
afficher le résultat
JSP vue (affichage)
58
Utiliser Javascript
  • Dans les exemples précédents, les contrôles sont
    réalisés dans la servlet après validation du
    formulaire
  • Or, Javascript permet de réaliser des contrôles
    dans le navigateur avant la validation du
    formulaire, ce qui évite un aller-retour sur le
    réseau

javascript
59
JavaScript exemple (1/3)
  • function contientNombre(champ)
  • // La valeur du champ
  • contenu champ.value
  • // Création de l'expression régulière
  • e new RegExp(/\d/)
  • // Test de conformité
  • return e.test(contenu)

60
Javascript exemple (2/3)
  • function validation(formulaire)
  • var message ''
  • if (!contientNombre(formulaire'base'))
  • message 'Vous devez choisir un nombre entier
    pour la base !\n'
  • if (!contientNombre(formulaire'hauteur'))
  • message '... un nombre entier pour la
    hauteur !\n'
  • if (message.length 0)
  • // Pas d'erreur on peut valider le formulaire
  • return true
  • else
  • // Erreur on affiche le message
  • alert(message)
  • return false

61
Javascript exemple (3/3)
  • Il faut appeler la méthode de validation sur
    l'événement onSubmit() du formulaire
  • ltform name"calculAire" method"post" action"se
    rvlet/AireServletAvecValidation"
    onSubmit"return validation(document.forms'cal
    culAire')"gt

62
Les services Web
  • Comment fournir un service à tous
  • Utilisation des services web
  • Transport de linformation en XML
  • Les protocoles
  • REST
  • XML-RPC
  • SOAP (le plus utilisé et le plus répandu)
  • HESSIAN (mode binaire, pas de xml)

Web service SOAP XML
63
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Servlets JSP
  • Structurer une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

64
Schéma général
1 requête HTTP depuis un formulaire
2 connexion à la base de données
Données
3 objet connexion
4 requête SQL
5 ensemble de données extraites de la base
6 page de réponse générée à partir des résultat
65
Problématique
  • Ouvrir une connexion sur une base de données
    prend du temps
  • On ne peut pas utiliser la même connexion pour
    différentes requêtes simultanées
  • ? La solution réside dans la constitution d'un
    pool de connexion

66
Architecture optimisée
POOL
1 requête HTTP depuis un formulaire
2 demande de connexion au pool
3 récupération d'une connexion disponible
Données
4 requête SQL
5 ensemble de données extraites de la base
6 page de réponse générée à partir des résultat
67
Configuration du pool (1/2)
  • Dans tomcat\conf\server.xml
  • ltContext path"/TestBD" reloadable"true"
    docBase"C\Applis\eclipse\workspace\TestBD "
    workDir"C\Applis\eclipse\workspace\TestBD\work\o
    rg\apache\jsp" gt
  • ...
  • ltResource name"jdbc/TestBD" auth"Container"
    type"javax.sql.DataSource"/gt
  • ltResourceParams name"jdbc/TestBD"gt
  • ...
  • lt!-- MySQL dB username and password for dB
    connections --gt
  • ltparametergt
  • ltnamegtusernamelt/namegt
  • ltvaluegtrootlt/valuegt
  • lt/parametergt
  • ltparametergt
  • ltnamegtpasswordlt/namegt
  • ltvaluegtlt/valuegt
  • lt/parametergt

68
Configuration du pool (2/2)
  • lt!-- Class name for mm.mysql JDBC driver --gt
  • ltparametergt
  • ltnamegtdriverClassNamelt/namegt
  • ltvaluegtcom.mysql.jdbc.Driverlt/valuegt
  • lt/parametergt
  • lt!-- The JDBC connection url for connecting
    to your MySQL dB.
  • The autoReconnecttrue argument to the
    url makes sure that the
  • mm.mysql JDBC Driver will automatically
    reconnect if mysqld closed the
  • connection. mysqld by default closes
    idle connections after 8 hours.
  • --gt
  • ltparametergt
  • ltnamegturllt/namegt
  • ltvaluegtjdbcmysql//127.0.0.1/TestBD?autoRec
    onnecttruelt/valuegt
  • lt/parametergt
  • lt/ResourceParamsgt
  • lt/Contextgt

69
Récupération d'une connexion
  • Dabord récupérer le contexte de lapplication
    web
  • puis la connexion
  • Context ctx new InitialContext()
  • DataSource ds (DataSource)ctx.lookup("javacomp/
    env/jdbc/TestBD")
  • Connection conn ds.getConnection()
  • utilisation de la connexion

70
TP 5
  • Une base de données existante contient une table
    Personne, avec 3 champs id, nom, prenom, age
  • Suivre les indications de l'enseignant pour
    obtenir les paramètres de connexion à la base de
    données
  • Programmer une servlet/un JSP qui affichent dans
    un tableau les noms de toutes les personnes triés
    par ordre alphabétique
  • Programmer une servlet/un JSP qui affichent les
    détails d'une personne dans une fenêtre Popup
    lorsqu'on clique sur le nom d'une personne

71
Sommaire
  • Les différents types d'applications
  • Les applications Web
  • Présentation de Tomcat
  • Utilisation dEclipse
  • Servlets JSP
  • Structurer une application Web
  • Base de données et serveurs d'applications
  • Déployer son application Web

72
Déployer une application
  • Lhébergement dune application nécessite un
    serveur
  • Windows NT/2000/XP
  • Linux
  • 2 solutions
  • création de son propre serveur
  • délégation de lhébergement à un professionnel

73
Comment créer son serveur ?
  • Utiliser un PC robuste et bien ventilé
  • Installer/Configurer Linux ou Windows
  • Installer/Configurer Java
  • Installer/Configurer MySQL
  • Installer/Configurer Tomcat

74
Webographie
  • JAVA
  • http//java.sun.com/
  • HTML/CSS/javascript
  • http//www.devguru.com/
  • http//www.w3schools.com/
  • Serveurs dapplications
  • http//www.jboss.com/products/jbossas/
  • http//tomcat.apache.org/

75
Webographie
  • Développement
  • http//lomboz.objectweb.org/
  • Framework
  • http//www.springframework.org/
  • http//ws.apache.org/axis/
  • http//struts.apache.org/
  • http//java.sun.com/products/jsp/jstl/
  • http//jakarta.apache.org/commons/
Write a Comment
User Comments (0)
About PowerShow.com