La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

JSTL JSP Standard Tag Library Par: Bendjaballah Billel Mehdi Master 2 pro GI – option SRR 2004-2005.

Présentations similaires


Présentation au sujet: "JSTL JSP Standard Tag Library Par: Bendjaballah Billel Mehdi Master 2 pro GI – option SRR 2004-2005."— Transcription de la présentation:

1 JSTL JSP Standard Tag Library Par: Bendjaballah Billel Mehdi Master 2 pro GI – option SRR

2 J S T L Sommaire Introduction Servlets et JSP Tag Library avec JSP JSTL Expression Language: EL Exemples

3 J S T L Introduction Profusion des langages de programmation de pages dynamiques CGI, PHP, ASP (.NET) Servlets et JSP (JavaServer Pages) Conteneur web: Jakarta Tomcat Caractéristiques des grands projets dapplications Web. Plusieurs équipes spécialisées. Séparation des tâches. Architecture en modèle MVC (Model View Controller) Model = Logique métier (EJB,DBMS) View = Présentation (JSP, JSTL,..) Controller = Servlets

4 J S T L Servlets Classes Java Générer des Pages HTML dynamiques depuis des requêtes out.println() pour générer du HTML. Inconvénients: Code illisible si la page à générer est volumineuse (Maintenance) Difficulté à faire la mise en page. Développeur ou web designer? Public class MyServlet extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletReponse res){ PrintWriter out = res.getWriter(); out.println(" Hello "); out.println(" Hello Servlet Test "); }

5 J S T L JSP Création de contenu web dynamique simplifiée avec JSP Quelques notions sur JSP Éléments de script: Scriplets Déclarations Expressions Syntaxe XML Directives

6 J S T L Il est Possible de faire coopérer des Servlets avec les JSP JSP pour laffichage = allégée en code java (présentation) Servlets pour le traitement des requêtes et travail en arrière plan = plus de code HTML Modèle MVC en Struts et JSF Servlets et JSP JSP (view) Servlets (Control) Model (BL)

7 J S T L Tag Library TLD Introduites avec la version JSP 1.1 Avantages Étendre les balises JSP standards Balises sp é cifiques à un cas d usage R é duire l utilisation des scriplets Améliorer la lisibilité de la page JSP Lib é rer les concepteurs de pages du code Java Mise en oeuvre Classe Java Handle avec la librairie javax.servlets.jsp.tagext Fichier file.tld descripteur du tag Page JSP utilisant la nouvelle balise

8 J S T L Tag Library Exemple Hello World La classe Java (Class handler) Import javax.servlet.jsp.tagext.*; Public class Hello extends TagSupport{ public int doStartTag() throws JspException { try { pageContext.getOut().print("Hello World"); } catch (Exception ex) { throw new JspException("IO problems"); } return SKIP_BODY; }

9 J S T L Tag Library Exemple Hello World Le descripteur hello.tld hello basic.Hello empty Tag that Print Hello World

10 J S T L Tag Library Exemple Hello World Utilisation Dans le web.xml Dans la page JSP /WEB-INF/tld/utilitytags.tld......

11 J S T L Depuis la version JSP 1.2 Spécification développé par le groupe dexperts JSR 52 Collection de Tag Librairies personnalisées qui implémentent la plus part des fonctions communes aux pages web: Itérations et conditions (core) Formatage des données (format) Manipulation de XML (xml) Accès au bases de données (sql) Utilisation du langage EL (Expression Language) Avantages Code simple, lisible et facile à maintenir Le concepteur de page est libéré de code Java Évite au développeur décrire à chaque fois les fonctions de bases.

12 J S T L Spécification de EL sous lautorité du groupe dexpert JSR-152 pour JSP 1.3 Le JSR-52 et JSR-152 travail ensemble sur la spécification de lExpression Language Deux version: une pour JSTL et lautre pour JSP 1.3 En JSTL il est utilisé uniquement dans la valeur dun attribut: Il est invoqué exclusivement via la syntaxe ${ expr } EL: Expression Language

13 J S T L Un identificateur dans EL fait référence à une variable retourné par lappel de pageContext.findAttribute(identificateur) et qui est dans la portée (scope): page, request, session ou application. ${ var } = pageContext.getAttribute("var") Objets implicites: pageScope, requestScope, sessionScope, applicationScope Accès au paramètres dune requête HTTP via param (objet de type Map) et paramValue Un objet implicite pageContext qui donne accès aux propriétés associés au contexte de la page JSP EL: Expression Language objets pr é d é finies

14 J S T L Opérateurs relationnels (== != =), arithmétiques (+ - * / %) et logiques (&& || !) Lopérateur [ ] pour accéder au objets de type Map, Array et List Ex: param["p1"] param.get("p1") EL: Expression Language Op é rateurs

15 J S T L Fonction de base Fonction de teste Fonction itérative SQL XML JSTL core tag library

16 J S T L Fonctions de base Affichage Affectation Exception java.lang.Throwable actions a surveiller <% try{ actions à surveiller }catch(Throwable varName){} %> JSTL core tag library

17 J S T L Les conditions 1- simple if(cond) 2-choix multiple if/else JSTL core tag library Pas de visite! visiteurs.

18 J S T L Les itérations avec la boucle for/while en JSP JSTL core tag library.. <% Member user = null; Collection users = session.getAttribute("members"); Iterator it = users.iterator(); while(it.hasNext()){ user = (Member) it.next(); %>

19 J S T L Les itérations avec la boucle for/while forEach JSTL core tag library

20 J S T L SQL Faire des requêtes Accès au résultat simplifié Faire des mises à jour Faire des transactions JSTL core tag library

21 J S T L Data source est de type Javax.sql.DataSource SELECT * FROM customers WHERE country = Algeria ORDER BY lastname JSTL SQL

22 J S T L Data source est de type Javax.sql.DataSource <% Connection con = dataSource.getConnection; Statement stm = con.createStatement(); ResultSet customers = stm.executeQuery("SELECT * FROM customers WHERE country = Algeria ORDER BY lastname"); %> JSTL SQL

23 J S T L and statements isolationLevel ::= "read_committed" | "read_uncommitted" | "repeatable_read" | "serializable" JSTL SQL Les transactions

24 J S T L JSTL XML parse un document XML par sa DTD Évalue une expression Xpath et affiche le résultat applique les transformations dune feuille de style XSLT sur un document XML

25 J S T L JSTL lookup EJB Tag Définition dun tag pour faire le lookup sur un EJB En JSP plusieurs instructions complexes Le concepteur de page doit connaître java, les EJB et le mécanisme de lookup. <% Context c = new InitialContext(); Object obj = c.lookup("java:comp/env/ejb/Admin"); EJBHome home = PortableRemoteObject.narrow(obj,EJBHome.class); %>

26 J S T L JSTL lookup EJB Tag Entrée: Entrée: nom JNDI de lEJB + nom de la class Home Sortie: Sortie: Objet de type EJBHome sauvegardé dans session

27 J S T L JSTL lookup EJB Tag : EJBLookupTag.java public int doStartTag() throws JspException { Context c; try { c = new InitialContext(); Object obj = c.lookup("java:comp/env/ejb/"+ejbname); home = (EJBHome) PortableRemoteObject.narrow(obj,homename); if(home == null) throw new JspException("[EJBLookupTag]Unable to lookup: "+ejbname); } catch (NamingException ne) { throw new JspException("[EJBLookupTag] Caused by: "+ne.getMessage()); } return SKIP_BODY; } public int doEndTag() throws JspException { pageContext.setAttribute(home, homeClass, PageContext.PAGE_SCOPE); return EVAL_PAGE; }

28 J S T L JSTL lookup EJB Tag: ejb.tld …. lookup com.ecom.jstl.EJBLookupTag EMPTY var true false ejbname true homename true false

29 J S T L JSTL lookup EJB Tag : web.xml et index.jsp /jstl-ejb-taglib /WEB-INF/ejb.tld...

30 J S T L JSTL Questions? Questions?

31 J S T L JSTL Demo La d é mo


Télécharger ppt "JSTL JSP Standard Tag Library Par: Bendjaballah Billel Mehdi Master 2 pro GI – option SRR 2004-2005."

Présentations similaires


Annonces Google