Module de dcouverte Dveloppement web en Java - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Module de dcouverte Dveloppement web en Java

Description:

page : d finit les attributs de la page (type de contenu, librairies java ... Modification des attributs jsp:setProperty name= 'unePersonne' property= 'nom' value ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 22
Provided by: math228
Category:

less

Transcript and Presenter's Notes

Title: Module de dcouverte Dveloppement web en Java


1
Module de découverteDéveloppement web en Java
  • Mathieu Chatelain
  • Integra Solutions

2
Sommaire
  • JSP
  • Introduction conteneur web cycle de vie
    Servlet
  • Tags JSP
  • Les objets implicites
  • Les actions

3
JSP
  • JSP JavaServer Page.
  • Concurrent de PHP et ASP.
  • Avantages
  • Puissance de Java
  • Gratuit
  • Facile à développer
  • Inconvénients
  • Infrastructure lourde à mettre en place
  • Extension fichier .jsp
  • Version actuelle JSP 2.1 Servlet 2.5
  • Page JSP mélange HTML et Java.
  • Sexécute dans un conteneur web.

4
1er exemple
  • Index.jsp
  • lthtmlgt
  • ltheadgt
  • lttitlegtma première jsplt/titlegt
  • lt/headgt
  • ltbodygt
  • lt out.println("hello world") gt
  • lt/bodygt
  • lt/htmlgt

5
Conteneur web
  • Logiciel qui exécute des applications orientées
    web.
  • Implémente les spécifications J2EE fournis par
    Sun.
  • Fournit notamment les API pour la sécurité et la
    gestion de la concurrence.
  • Les plus connus Tomcat (projet Apache,
    gratuit), WebSphere (IBM), Weblogic (BEA), JOnAS
    (OW2, gratuit).
  • Ce cours utilise Tomcat.
  • Version 5.0.28
  • Servlet 2.4 JSP 2.0

6
Cycle de vie
7
Cycle de vie
  • Le serveur reçoit la demande du navigateur.
  • Transformée en Servlet (classe java exécutée dans
    un conteneur web) lorsque la JSP est appelée pour
    la première fois.
  • La Servlet est compilée.
  • La machine virtuelle exécute la Servlet.
  • Le résultat est stocké sous forme dun buffer de
    texte.
  • Le buffer est renvoyé par le serveur vers le
    navigateur.
  • 3 méthodes essentielles
  • jspInit () qui est appelée après le premier
    chargement (compilation)
  • _jspService() qui est appelée à chaque fois que
    la JSP est sollicitée.
  • jspDestroy() qui est appelée lors du déchargement
    (nouvelle version de la JSP compilée).

8
Servlet
  • Classe java pur.
  • Hérite de javax.servlet.http.HttpServlet
  • Sexécute aussi dans un conteneur web.
  • 5 méthodes essentielles
  • init() pour linitialisation.
  • destroy() pour détruire la servlet après
    exécution.
  • service() pour lexécution.
  • doGet() appelée par service() pour traiter les
    requêtes de type GET.
  • doPost() appelée par service() pour traiter les
    requêtes de type POST.

9
Les tags JSP
  • Permettent de distinguer le code java du code
    HTML.
  • Plusieurs tags
  • Les tags de directives lt_at_ gt
  • Les tags de déclarations lt! gt
  • Les tags de scriptlets lt gt
  • Les tags dexpression lt gt
  • Les tags de commentaires lt-- --gt

10
Les tags de directives
  • Placés entre lt_at_ et gt
  • 3 types
  • include sert à inclure dautres fichier dans la
    JSP. Le fichier tout entier (variables,
    entrée/sortie etc.. ) est incorporé dans la JSP
    au moment de la transformation en Servlet.
  • lt_at_ include file "unfichier.html gt
  • taglib indique le chemin et le préfixe utilisé
    pour une librairie de tag.
  • lt_at_ taglib prefix "monprefix" uri
    "WEB-INF/library.tld" gt
  • lt_at_ taglib uri"http//java.sun.com/jsp/jstl/core"
    prefix"c" gt
  • page définit les attributs de la page (type de
    contenu, librairies java importées, pages
    derreur ou non).
  • lt_at_ page import" java.util.Date"
    contentType"application/vnd.ms-excel"
    isErrorPage"false" gt pour pouvoir utilisé la
    librairie java.util.Date, que le contenu reçu par
    le navigateur soit ouvrable avec Excel et que
    préciser ce nest pas une page derreur.

11
Les tags de déclaration
  • Placés entre lt! et gt
  • Permet de déclarer des variables et des méthodes
    accessibles dans toute la page.
  • lt!
  • public Objet monObjetnew Objet()
  • private int i5
  • public int getValeur() return i
  • public void jspInit() System.out.println("redéfin
    ition de la méthode dinitialisation")
  • gt
  • Il est possible de redéfinir les méthode
    jspInit() et jspDestroy (mais pas _jspService()).

12
Les tags de scriptlet
  • Placés entre lt et gt
  • Permet dinsérer du code java dans la JSP, qui
    sera compilé lors de la transformation Servlet.
  • Permet aussi daccéder aux objet, variables et
    méthodes déclarés dans la partie déclarative.
  • lt!
  • private int i5
  • public int getValeur() return i
  • gt
  • lt
  • for (int j 1 j lt getValeur() j
    )
  • out.print(j)
  • gt
  • ltbr /gt
  • lt gt

13
Les tags dexpressions
  • Placés entre lt et gt
  • Servent à évaluer une variable ou une expression
    et à renvoyer la valeur.
  • Sont équivalent à lt out.println(variable)gt
  • lt! int i5gt
  • ltigt gt affichera 5 sur la page.

14
Les objets implicites
  • accessibles seulement dans la partie scriptlet et
    expressions.
  • request Instance de la classe javax.servlet.http.
    HttpServletRequest, cet objet possède les
    méthodes qui permettent d'accéder aux
    informations de la requête en cours, comme les
    paramètres de requête via la méthode getParameter
    et les entêtes HTTP comme les cookies, le
    référent, etc...
  • response Instance de la classe
    javax.servlet.http.HttpServletResponse, cet objet
    possède les méthodes qui permettent de spécifier
    les entêtes HTTP comme les cookies, il contient
    de ce fait la réponse de la page JSP.
  • session Instance de la classe javax.servlet.http.
    HttpSession, cet objet est par défaut disponible
    à toutes les pages qui participe à une session
    sauf si l'attribut session de la directive page
    est positionné à faux. Il permet d'accéder aux
    objets dont la portée est session via la méthode
    getAttribute.
  • out Instance de la classe javax.servlet.jsp.JspWr
    iter, cet objet représente le canal de sortie
    utilisé pour communiquer la réponse au client
    (navigateur).

15
Les objets implicites
  • application Instance de la classe
    javax.servlet.ServletContext, cet objet contient
    le contexte de la servlet.
  • context Instance de la classe javax.servlet.jsp.P
    ageContext, cet objet permet d'accéder à
    différentes informations sur l'environnement du
    serveur.
  • config Instance de la classe javax.servlet.Servle
    tConfig, cet objet permet d'accéder à la
    configuration de la servlet.
  • page instance de la classe java.lang.Object, cet
    objet désignant la page JSP elle-même, c'est
    l'équivalent à this de Java. Prévu initialement
    pour permettre l'accès à des objets Java
    lorsqu'un autre langage de script était utilisé.
  • exception instance de la classe
    java.lang.Throwable, cet objet représentant une
    exception non interceptée par le code Java, très
    utile dans les pages d'erreur.

16
JSP Les actions
  • Permettent dexécuter du code java au moment où
    la page est requise.
  • Plusieurs possibilités
  • Inclusion dynamique de beans,
  • Inclusion dynamique de fichier,
  • Redirection vers une autre page.
  • Syntaxe semblable à XML.
  • ltbaliseaction . . .gt
  • . . .
  • . . .
  • lt/baliseactiongt

17
Création de beans
  • Syntaxe ltjspuseBean id "nomDuBean"
    class"com.package.class" scope "request" /gt
  • id nom du bean,
  • class classe du bean,
  • scope permet de déterminer la portée du bean
    avec les valeurs suivantes
  • request pour la requête courante uniquement,
  • session pour la durée de la session entière,
  • application accessible dans toute lapplication.

18
Utilisation de beans
  • Besoin de connaître le nom du bean et ses
    méthodes.
  • 3 méthodes daccès aux beans
  • Via la partie scriptlet avec du code java
     classique 
  • ltout.println(unePersonne.getNom())gt
  • Via la partie expression
  • lt unePersonne.getNom()gt
  • Via la partie action
  • ltjspgetProperty name "unePersonne" property
    "nom"/gt

19
Utilisation de beans
  • Modification des attributs
  • ltjspsetProperty name "unePersonne" property
    "nom" value "toto" /gt
  • ltjspsetProperty name "unePersonne" property
    "nom"
  • value "ltrequest.getParameter("nom")gt" /gt
  • Ceci ne fonctionne pas
  • ltjspsetProperty name "unePersonne" property
    "age"
  • value"ltjspgetProperty name "unePersonne"
    property "age"/gt1" /gt
  • Remplacer par
  • ltjspsetProperty name "unePersonne" property
    "age"
  • value"ltunePersonne.getAge()1gt" /gt

20
Inclusion de pages
  • Syntaxe ltjspinclude page "/mapage.jsp"/gt .
  • Inclusion dynamique, effectuée au moment de la
    requête.
  • Possibilité de transmettre des infos à la page
    incluse.
  • ltjspinclude page "/mapage.jsp"gt
  • ltjspparam name "maVariable" value "laValeur"
    /gt
  • lt/jspincludegt
  • Récupération
  • ltout.println(request.getParameter(maVariable))gt

21
Redirection
  • Syntaxe ltjspforward page "/mapage.jsp"/gt .
  • redirection dynamique, effectuée au moment de la
    requête.
  • Possibilité de transmettre des infos à la page
    incluse.
  • ltjspforward page "/mapage.jsp"gt
  • ltjspparam name "maVariable" value "laValeur"
    /gt
  • lt/jspforwardgt
  • Récupération
  • ltout.println(request.getParameter(maVariable))
    gt
  • Tous les traitements codés à la suite de la
    redirection ne sont pas exécutés.
Write a Comment
User Comments (0)
About PowerShow.com