jstl j sp s tandard t ag l ibrary

Download JSTL J SP  S tandard  T ag  L ibrary

If you can't read please download the document

Upload: harlan

Post on 08-Jan-2016

46 views

Category:

Documents


2 download

DESCRIPTION

JSTL J SP S tandard T ag L ibrary. Par: Bendjaballah Billel Mehdi ([email protected]). Master 2 pro GI – option SRR 2004-2005. Sommaire. Introduction Servlets et JSP Tag Library avec JSP JSTL Expression Language: EL Exemples. Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

  • JSTLJSP Standard Tag LibraryPar: Bendjaballah Billel Mehdi([email protected])Master 2 pro GI option SRR 2004-2005

  • SommaireIntroductionServlets et JSPTag Library avec JSPJSTLExpression Language: ELExemples

  • IntroductionProfusion des langages de programmation de pages dynamiquesCGI, PHP, ASP (.NET)Servlets et JSP (JavaServer Pages)Conteneur web: Jakarta TomcatCaractristiques des grands projets dapplications Web.Plusieurs quipes spcialises.Sparation des tches.Architecture en modle MVC (Model View Controller)Model = Logique mtier (EJB,DBMS)View = Prsentation (JSP, JSTL,..)Controller = Servlets

  • ServletsClasses JavaGnrer des Pages HTML dynamiques depuis des requtesout.println() pour gnrer du HTML.Inconvnients:Code illisible si la page gnrer est volumineuse (Maintenance)Difficult faire la mise en page.Dveloppeur 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"); }

  • JSPCration de contenu web dynamique simplifie avec JSPQuelques notions sur JSPlments de script:Scriplets Dclarations Expressions Syntaxe XML

    Directives

  • Servlets et JSPIl est Possible de faire cooprer des Servlets avec les JSPJSP pour laffichage = allge en code java (prsentation)Servlets pour le traitement des requtes et travail en arrire plan = plus de code HTML

    Modle MVC en Struts et JSF

  • Tag Library TLDIntroduites avec la version JSP 1.1Avantagestendre les balises JSP standardsBalises spcifiques un cas dusageRduire lutilisation des scripletsAmliorer la lisibilit de la page JSPLibrer les concepteurs de pages du code JavaMise en oeuvre Classe Java Handle avec la librairie javax.servlets.jsp.tagextFichier file.tld descripteur du tagPage JSP utilisant la nouvelle balise

  • Tag Library ExempleHello WorldLa 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; }}

  • Tag Library ExempleHello WorldLe descripteur hello.tld

    1.0 1.2 hello basic.Hello empty Tag that Print Hello World

  • Tag Library ExempleHello WorldUtilisationDans le web.xml

    Dans la page JSP

    http://www.ecom.com/taglibs/utilitytags /WEB-INF/tld/utilitytags.tld

    . . .

    . . .

  • JSTLDepuis la version JSP 1.2Spcification dvelopp par le groupe dexperts JSR 52Collection de Tag Librairies personnalises qui implmentent la plus part des fonctions communes aux pages web:Itrations et conditions (core)Formatage des donnes (format)Manipulation de XML (xml)Accs au bases de donnes (sql)Utilisation du langage EL (Expression Language)AvantagesCode simple, lisible et facile maintenirLe concepteur de page est libr de code Javavite au dveloppeur dcrire chaque fois les fonctions de bases.

  • EL: Expression LanguageSpcification de EL sous lautorit du groupe dexpert JSR-152 pour JSP 1.3

    Le JSR-52 et JSR-152 travail ensemble sur la spcification 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 Languageobjets prdfiniesUn identificateur dans EL fait rfrence une variable retourn par lappel de pageContext.findAttribute(identificateur) et qui est dans la porte (scope): page, request, session ou application.${ var } = pageContext.getAttribute("var")

    Objets implicites:pageScope, requestScope, sessionScope, applicationScope

    Accs au paramtres dune requte HTTP via param (objet de type Map) et paramValue

    Un objet implicite pageContext qui donne accs aux proprits associs au contexte de la page JSP

  • EL: Expression LanguageOprateursOprateurs relationnels (== != < > =), arithmtiques (+ - * / %) et logiques (&& || !)

    Loprateur [ ] pour accder au objets de type Map, Array et ListEx: param["p1"] param.get("p1")

  • JSTLcore tag library

    Fonction de baseFonction de testeFonction itrativeSQLXML

  • JSTLcore tag libraryFonctions de baseAffichage Affectation

    Exception java.lang.Throwable

    actions a surveiller

  • JSTLcore tag libraryLes conditions1- simple if(cond)

    2-choix multiple if/else

  • JSTLcore tag libraryLes itrations avec la boucle for/whileen JSP

    . . . .

  • JSTLcore tag library

    Les itrations avec la boucle for/whileforEach

  • JSTLcore tag librarySQL

    Faire des requtesAccs au rsultat simplifiFaire des mises jourFaire des transactions

  • JSTLSQLData source est de type Javax.sql.DataSource

    SELECT * FROM customersWHERE country = AlgeriaORDER BY lastname

  • JSTLSQLData source est de type Javax.sql.DataSource

  • JSTLSQL

    and statements

    isolationLevel ::= "read_committed"| "read_uncommitted"| "repeatable_read"| "serializable"

    Les transactions

  • JSTLXML

    parse un document XML par sa DTD

    value une expression Xpath et affiche le rsultat

    applique les transformations dune feuille de style XSLT sur un document XML

  • JSTLlookup EJB TagDfinition dun tag pour faire le lookup sur un EJBEn JSP plusieurs instructions complexesLe concepteur de page doit connatre java, les EJB et le mcanisme de lookup.

  • JSTLlookup EJB Tag

    Entre: nom JNDI de lEJB + nom de la class Home

    Sortie: Objet de type EJBHome sauvegard dans session

  • JSTLlookup 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; }

  • JSTLlookup EJB Tag: ejb.tld

    . lookup com.ecom.jstl.EJBLookupTag EMPTY var true false ejbname true true homename true false

  • JSTLlookup EJB Tag : web.xml et index.jsp

    /jstl-ejb-taglib /WEB-INF/ejb.tld

    . . .

  • JSTLQuestions?

    Questions?

  • JSTLDemo

    La dmo