La Faq Java Ee

download La Faq Java Ee

of 55

Transcript of La Faq Java Ee

  • 8/14/2019 La Faq Java Ee

    1/55

  • 8/14/2019 La Faq Java Ee

    2/55

    Ont contribu cette FAQ :

    L'quipe Java - Stessy - adiGuba - bahamouth - christopheJ

    - lunatix - syj - Righetto Dominique - draken - SnorkyBZH

    - Didier - vedaer - duj - request - SEMPERE Benjamin -

    Jaxofun - willy78 - Sniper37 - X-plode : Mike Franois -

    http://www.developpez.net/forums/u80434/x-plode/http://www.developpez.net/forums/u19983/sniper37/http://www.developpez.net/forums/u81089/willy78/http://www.developpez.net/forums/u25644/jaxofun/http://www.developpez.net/forums/u40223/sempere-benjamin/http://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=10027http://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=24888http://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=21933http://www.developpez.net/forums/u348/didier/http://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=7099http://www.developpez.net/forums/u3132/draken/http://www.developpez.net/forums/u1623/righetto-dominique/http://www.developpez.net/forums/u7386/syj/http://www.developpez.net/forums/u9119/lunatix/http://http//www.developpez.net/forums/u35163/christophej/http://http//www.developpez.net/forums/u14756/bahamouth/http://www.developpez.net/forums/u1195/adiguba/http://http//www.developpez.net/forums/u1382/stessy/http://java.developpez.com/equipe/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    3/55

    La FAQ Java EE

    - 3 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    1. Informations gnrales (5) .........................................................................................................................................................4

    2. Dfinitions (14) ..........................................................................................................................................................................6

    3. Java EE (4) .............................................................................................................................................................................. 12

    3.1. Gnralits (4) .................................................................................................................................................................13

    4. JSP (26) ....................................................................................................................................................................................14

    4.1. Gnralits (6) .................................................................................................................................................................15

    4.2. JSTL (Java Standard Tag Library) (2) ...........................................................................................................................18

    4.2.1. Librairie de base (1) .............................................................................................................................................. 19

    4.3. JSP Taglibs (18) ............................................................................................................................................................. 20

    4.3.1. Taglibs 1.1 (11) ..................................................................................................................................................... 21

    4.3.2. Taglibs 1.2 (6) ....................................................................................................................................................... 30

    5. Servlets (18) .............................................................................................................................................................................35

    5.1. Gnralits (15) ...............................................................................................................................................................36

    5.2. Session (3) ...................................................................................................................................................................... 43

    6. Frameworks Web (2) ...............................................................................................................................................................45

    7. Conteneurs Web et Serveurs d'Application (2) .......................................................................................................................467.1. Serveurs d'application (0) ............................................................................................................................................... 47

    7.1.1. Glassfish (0) ...........................................................................................................................................................48

    7.1.2. JBoss (0) ................................................................................................................................................................ 49

    7.1.3. Weblogic (0) ..........................................................................................................................................................50

    7.1.4. JOnAS (0) ..............................................................................................................................................................51

    7.1.5. Websphere (0) ........................................................................................................................................................52

    7.2. Conteneurs Web (2) ........................................................................................................................................................53

    7.2.1. Tomcat (2) ............................................................................................................................................................. 54

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    4/55

    La FAQ Java EE

    - 4 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > Informations gnrales

    Comment bien utiliser cette faq ?Auteurs : L'quipe Java ,

    Le but : Cette faq a t conue pour tre la plus simple possible d'utilisation. Elle tente d'apporter des rponses simpleset compltes aux questions auxquelles sont confronts tous les dbutants (et les autres).L'organisation : Les questions sont organises par thme, les thmes pouvant eux-mme contenir des sous-thmes.Lorsqu'une question porte sur plusieurs thmes, celle-ci est insre dans chacun des thmes rendant la recherche plusfacile.Les rponses : Les rponses contiennent des explications et des codes sources. Certaines sont compltes de fichier tlcharger contenant un programme de dmonstration. Ces programmes sont volontairement trs simples afin qu'ilsoit ais de localiser le code intressant. Les rponses peuvent galement tre compltes de liens vers d'autres rponses,vers la documentation en ligne de Sun ou vers un autre site en rapport.Nouveauts et mises jour : Lors de l'ajout ou de la modification d'une question/rponse, un indicateur est plac cot

    du titre de la question. Cet indicateur reste visible pour une dure de 15 jours afin de vous permettre de voir rapidementles modifications apportes.J'espre que cette faq pourra rpondre vos questions. N'hsitez pas nous faire part de tous commentaires/remarques/critiques.

    lien : Comment participer cette faq?

    Comment participer cette faq ?

    Auteurs : L'quipe Java ,

    Cette faq est ouverte toute collaboration. Pour viter la multiplication des versions, il serait prfrable que toutes

    collaborations soient transmises aux administrateurs de la faq.Plusieurs comptences sont actuellement recherches pour amliorer cette faq :Rdacteur : Bien videmment, toute nouvelle question/rponse est la bienvenue.Web designer : Toute personne capable de faire une meilleure mise en page, une feuille de style ou de belles images...Correcteur : Malgr nos efforts, des fautes d'orthographe ou de grammaire peuvent subsister. Merci de contacter lesadministrateurs si vous en dbusquez une... Idem pour les liens errons.

    lien : Quels sont les droits de reproduction de cette faq ?

    Quels sont les droits de reproduction de cette FAQ ?

    Auteurs : L'quipe Java ,

    Les codes sources prsents sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Pour lereste, ce document constitue une oeuvre intellectuelle protge par les droits d'auteurs.Copyright 2009 Developpez LLC : Tous droits rservs Developpez LLC. Aucune reproduction ne peut en tre faitesans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de dommages et intrts. Cette page est dpose la SACD.

    O trouver d'autres sources d'information ?

    Auteurs : L'quipe Java ,

    Les cours et didacticiels de www.developpez.com

    Les forums de la section Java de www.developpez.com

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/cours/http://java.developpez.com/equipe/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/forumdisplay.php?f=6http://java.developpez.com/cours/http://java.developpez.com/equipe/http://java.developpez.com/equipe/http://java.developpez.com/faq/javaee/?page=Information#INFORMATION_licencehttp://java.developpez.com/equipe/http://java.developpez.com/faq/javaee/?page=Information#INFORMATION_participationhttp://java.developpez.com/equipe/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    5/55

    La FAQ Java EE

    - 5 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    La FAQ Struts

    La FAQ Gnral Java

    La FAQ JDBC

    La Javadoc : toutes les informations utiles sur les classes, leurs mthodes ... toujours avoir sous la main.

    Les didacticiels de Sun

    La FAQ de JGuru, beaucoup plus complte que celle-ci ...

    Remerciements

    Auteurs : L'quipe Java ,

    http://java.developpez.com/faq/javaee/http://java.developpez.com/equipe/http://www.jguru.com/faq/http://java.sun.com/docs/books/tutorial/index.htmlhttp://java.sun.com/javaee/5/docs/api/http://java.developpez.com/faq/jdbc/http://java.developpez.com/faq/javahttp://java.developpez.com/faq/struts/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    6/55

    La FAQ Java EE

    - 6 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > Dfinitions

    Qu'est ce que Java EE?Auteurs : Stessy ,

    La plateforme Java entreprise (Java EE) est un ensemble de spcifications coordonnes et pratiques qui permettentensemble des solutions pour le dveloppement, le dploiement, et de la gestion des applications multitiers centralisessur un serveur. Construit sur la plateforme de Java 2 dition standard (Java SE), la plateforme Java EE ajoute lespossibilits ncessaires pour fournir une plateforme complte, stable, scurise, et rapide de Java au niveau entreprise.La plateforme entreprise fournit un ensemble de services permettant aux composants de dialoguer entre eux:

    HTTP et HTTPS Java Transaction API (JTA) Remote Method Invocation/Internet Inter-ORB Protocol (RMI/IIOP) Java Interface Definition Language (Java IDL)

    Java DataBase Connectivity (JDBC) Java Message Service (JMS) Java Naming and Directory Interface (JNDI) API JavaMail et JAF (JavaBeans Activation Framework) Java API for XML Processing (JAXP) Java EE Connector Architecture Gestionnaires de ressources Entreprise Java Beans (EJB) Java Server Pages (JSP) Servlet Java API for XML Web Services (JAX-WS, anciennement JAX-RPC) SOAP with Attachments API for Java (SAAJ)

    Java API for XML Registries (JAXR)

    Si vous souhaitez en savoir plus sur Java EE, suivez ces liens:

    Java EE Home

    Java EE 5 Tutorial

    Que sont les EJB

    Auteurs : Stessy ,

    Un composant Entreprise JavaBeans (EJB) est une classe ayant des champs et des mthodes pour mettre en applicationdes modules de la logique mtier (Business logic). Vous pouvez penser un entreprise bean comme un module pouvanttre employ seul ou avec d'autres entreprise bean pour excuter la logique mtier sur le serveur Java EE.Il existe actuellement trois types d'entreprise bean :

    les bean session (Session Bean) les bean entit (Entity Bean) les bean contrls par message (Message Driven Bean)

    Les entreprise bean interagissent le plus souvent avec des bases de donnes.Si vous souhaitez en savoir plus sur les EJB, suivez ces liens :

    EJB Home

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.sun.com/products/ejb/index.jsphttp://http//www.developpez.net/forums/u1382/stessy/http://java.sun.com/javaee/index.jsphttp://java.developpez.com/faq/javaee/http://java.sun.com/products/ejb/index.jsphttp://java.sun.com/products/ejb/index.jsphttp://http//www.developpez.net/forums/u1382/stessy/http://java.sun.com/javaee/5/docs/tutorial/doc/http://java.sun.com/javaee/index.jsphttp://http//www.developpez.net/forums/u1382/stessy/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    7/55

    La FAQ Java EE

    - 7 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    EJB (J2EE 1.4 tutorial)

    EJB Spcifications

    Que sont les Servlet?

    Auteurs : Stessy ,

    Techonologie Java utilise pour effectuer des traitements cot serveur en rponse aux requtes provenant en gnralde poste clients distants.Bien que les servlets puissent rpondre n'importe quel type de requte, elles sont gnralement employes pourrpondre des requtes de type HTTP et qui permettent de retourner dynamiquement des pages html.Si vous souhaitez en savoir plus sur les Servlets, suivez ces liens:

    Servlets Home

    Servlets (Java EE 5 Tutorial)

    Servlets implmentations et spcifications

    Que sont les JSP

    Auteurs : Stessy ,

    Les JavaServerPages (JSP) vous permet d'insrer des petits bouts de code Java (scriptlets) directement dans du codehtml. Une page JSP est un document qui contient deux types de texte:

    des donnes statiques (qui peuvent tre exprimes en n'importe quel format texte tel que le HTML, le WML, etle XML)

    des lments de JSP, qui dterminent comment la page construit le contenu dynamique.

    Pour plus d'informations sur les JSP, vous pouvez suivre ces liens :

    JSP home

    JSP (Java EE 5 Tutorial)

    JSP Spcifications et implmentation

    Que sont les connecteurs JCA?

    Auteurs : willy78 ,

    Les connecteurs JCA sont des modules qui se dploient sur les serveurs d'application.Ils permettent de connecter un serveur JavaEE un systme propritaire ("legacy system"), et de normaliser les accset interactions avec ce systeme.L'api JCA dfini un contrat entre le serveur d'application et le systeme, via des interfaces comme le fait jdbc.JCA est une gnralisation de JDBC.JCA 1.0 permet d'envoyer des messages vers le systme propritaire uniquement.

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u81089/willy78/http://java.sun.com/products/jsp/reference/api/index.htmlhttp://java.sun.com/javaee/5/docs/tutorial/doc/bnagx.htmlhttp://java.sun.com/products/jsp/index.jsphttp://http//www.developpez.net/forums/u1382/stessy/http://java.sun.com/products/servlet/reference/api/index.htmlhttp://java.sun.com/javaee/5/docs/tutorial/doc/bnafd.htmlhttp://java.sun.com/products/servlet/index.jsphttp://http//www.developpez.net/forums/u1382/stessy/http://java.sun.com/products/ejb/docs.htmlhttp://java.sun.com/j2ee/1.4/docs/tutorial/doc/EJBConcepts.html#wp80377http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    8/55

    La FAQ Java EE

    - 8 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    JCA 1.5 permet, en plus, de recevoir des messages qui seront traits par un "Message Listener", gnralement unMessage Driven Bean

    Qu'est ce que JAXP?

    Auteurs : vedaer ,

    JAXP (Java API for XML Processing) est l'API "standard" (appartenant au JDK) pour la manipulation du formatXML. Cette API met la disposition du dveloppeur trois ensembles de fonctionnalits : la modlisation, le parsing etla transformation. Elle est compose de quatre packages principaux.

    javax.xml.parsers : Ce package contient un ensemble d'interfaces devant tre implmentes par les diffrentsparseurs (SAX ou DOM). Ce package fournit aussi un ensemble de factory permettant l'accs aux parseurs.

    org.w3c.dom : Ce package contient l'ensemble des classes et interfaces ncessaires pour travailler avec DOM

    (modlisation). org.xml.sax : Ce package contient l'ensemble des classes et interfaces ncessaires pour travailler avec SAX

    (parsing). javax.xml.transform : Ce package contient l'ensemble des classes et interfaces ncessaires pour travailler avec

    XSLT (transformation).

    Attention, JAXP n'est pas limite SAX, DOM, XSLT et ces quatre packages. Elle offre bien plus de fonctionnalits.

    Pour savoir ce que sont exactement SAX, DOM, XSLT et en savoir plus sur l'utilisation de JAXP, regardez la partieXML de la FAQ Java .Il est aussi important de noter que, mme si au dpart JAXP fut cre comme une API Java EE, elle est dsormaisintgre au J2SDK standard.

    Pour plus d'informations sur XML, vous pouvez visiter la rubrique XML de developpez.com : http://xml.developpez.com/ .

    Qu'est ce que JAX-RPC?

    Auteurs : vedaer ,

    JAX-RPC (Java API for XML-based Remote Procedure Call) est une API permettant de crer des services et clientsWeb bass XML et RPC .RPC (Remote Procedure Calls), ou appels de procdures distance, est un systme permettant des clients d'excuterdes procdures sur des systmes distants. Ces appels de procdures et les rponses retournes se font grce au protocole

    HTTP et SOAP (messages XML).Attention ! Aujourd?hui remplac par JAX-WS.

    Qu'est ce que JAX-WS?

    Auteurs : X-plode : Mike Franois ,

    JAX-WS (Java API for XML Web Services) est la nouvelle appellation de JAX-RPC.JAX-WS est une technologie pour des raliser des services web et clients en utilisant le language XML.JAX-WS permet d'crire en orient message tout autant que des services web orient RPC.JAX-RPC ne convient plus l'ensemble des concepts couverts.Cet acronyme donne l'impression qu'il s'agit uniquement de technologies synchrones, relatives l'appel de procdure

    distance et non aux services web.De plus l'intgration de JAXB 2.0, pose de nombreux problmes de compatibilit avec JAX-RPC 1.1.

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u80434/x-plode/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u80434/x-plode/http://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=21933http://xml.developpez.com/http://xml.developpez.com/http://java.developpez.com/faq/xml/http://java.developpez.com/faq/xml/http://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=21933http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    9/55

    La FAQ Java EE

    - 9 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    C'est ainsi l'occasion pour Sun de repenser, mettre jour, amliorer et surtout rationaliser cette brique logicielle enutilisant les dernires nouveauts du langage lui-mme, ainsi que les technologies dveloppes en parallle dans d'autresgroupes de travail.

    Pour plus d'informations sur JAX-WS ( anciennement JAX-RPC ), vous pouvez suivre ces liens :

    Introduction de JAX-WS

    JAX-WS (Java EE 5 Tutorial)

    XML-RPC spcification

    Qu'est ce que JDBC?

    Auteurs : vedaer ,

    JDBC est une API (Application Programming Interface) java disponible depuis la version 1.1 du JDK. Pour note,JDBC est un nom dpos et non un acronyme, mme si en gnral on lui donne la dfinition suivante : Java DataBaseConnectivity .Cette API est constitue d'un ensemble d'interfaces et de classes qui permettent l'accs, partir de programmes java, des donnes tabulaires (i.e. tries sous forme de table ou de tableur). Par donnes tabulaires, on entends gnralementdes bases de donnes contenues dans des SGBD relationnels . Mais, JDBC n'est pas restreinte ce type de source dedonnes. On peux aussi accder des sources de donnes sous forme de fichiers (fichiers XML par exemple).

    Qu'est ce que JAAS?Auteurs : duj ,

    Java Authentication and Authorisation Service.Il s'agit d'un package fournissant des services d'authentification (login) et d'autorisation (verification de permissionspour l'execution de mthodes).JAAS fait partie de la distribution de base du SDK depuis la version 1.4 .

    http://java.sun.com/products/jaas/JAAS est hautement configurable, et permet aux dveloppeurs d'crire leurs propres modules.Une libraire fournissant quelques implmentation, dont une permettant une interaction avec Windows NT et Windows

    2000 pour l'authentification: http://free.tagish.net/jaas/index.jsp

    Qu'est ce que JAXB?

    Auteurs : vedaer ,

    JAXB (Java Architecture for XML Binding) offre les outils et API ncessaires pour "lier" des objets java desdocuments XML . JAXB utilise des schmas ( W3C XML Schema ) pour faire ce lien. Une fois ce lien cr (grce un compilateur qui va gnrer les packages correspondant un schma donn), vous pouvez facilement srialiser/desrialiser les objet java sous un format XML. Pour plus d'informations sur JAXB, vous pouvez suivre ces liens :

    JAXB home

    JAXB (Java Web Services Tutorial)

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.sun.com/webservices/docs/2.0/tutorial/doc/http://java.sun.com/xml/jaxb/index.jsphttp://java.developpez.com/faq/javaee/http://java.sun.com/webservices/docs/2.0/tutorial/doc/http://java.sun.com/webservices/docs/2.0/tutorial/doc/http://java.developpez.com/faq/javaee/http://java.sun.com/webservices/docs/2.0/tutorial/doc/http://java.sun.com/xml/jaxb/index.jsphttp://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=21933http://free.tagish.net/jaas/index.jsphttp://java.sun.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.htmlhttp://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=24888http://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=21933http://www.xmlrpc.com/spechttp://java.sun.com/javaee/5/docs/tutorial/doc/bnayl.htmlhttp://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    10/55

    La FAQ Java EE

    - 10 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Pour le moment, JAXB permet juste de partir d'un Schma XML pour gnrer les classes correspondantes (interfaces implmenter). JAXB 2.0 devrait palier cette limitation en permettant de crer des schmas partir de classes Java

    dj dfinies. Pour plus d'informations, regardez la JSR 222 : http://www.jcp.org/en/jsr/detail?id=222 .

    Qu'est ce que SAAJ ?

    Auteurs : vedaer ,

    SAAJ (SOAP with Attachments API for Java) est une API Java permettant l'envoi et la rception de messages XMLsur le rseau. Ces messages obissent la spcification SOAP (Simple Object Access Protocol) 1.1.SAAJ est souvent utilise par des API de plus haut niveau comme JAXR et JAX-RPC. Mais, elle peut tout fait treutilise de manire indpendante. Pour plus d'informations, vous pouvez suivre ces liens :

    SAAJ home

    SAAJ (Java EE 5 Tutorial)

    SAAJ documentation

    Vous pouvez trouver la spcification de SOAP cette adresse : http://www.w3.org/TR/soap/ .

    Qu'est ce que JAXR?

    Auteurs : vedaer ,

    JAXR (Java API for XML Registries) est une API intgre Java EE qui permet l'accs diffrents types de registresXML . Ces registres XML sont une infrastucture permettant la construction, le dploiement et la dcouverte de Webservices .JAXR permet l'interaction avec plusieurs standards, dont UDDI (Universal Description, Discovery, and Integration)et ebXML Registry and Repository standard. Pour connatre les versions supportes de ces standards et les diffrentesimplmentations fournisseur disponibles pour JAXR, suivez les liens ci-dessous.

    Java API for XML Registries (JAXR)

    JAXR (Chap. 10 du Java EE Tutorial)

    XML Downloads & Specifications

    Java Technology & Web Services

    Pour note, JAXR est intgr au JWSDP (Java Web Services Developer Pack), mais vous pouvez aussi le tlchagersparment (voir liens).

    Que sont les Frameworks Web ?

    Auteurs : X-plode : Mike Franois ,

    Un framework Web permet de pouvoir abstraire les problmes rencontrs au quotidien lors du developpement d'uneapplication Web. Tout autant, il permet de pouvoir avoir un design rutilisable pour un dveloppement donn.

    Le rsultat est un meilleur code, plus lisible et ainsi plus facilement maintenable.

    Les Frameworks Web peuvent se distinguent en deux types :

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u80434/x-plode/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u80434/x-plode/http://java.sun.com/webservices/index.jsphttp://java.sun.com/xml/download.htmlhttp://java.sun.com/webservices/docs/2.0/tutorial/doc/http://java.sun.com/webservices/jaxr/index.jsphttp://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=21933http://www.w3.org/TR/soap/http://java.sun.com/xml/saaj/docs.htmlhttp://java.sun.com/webservices/docs/2.0/tutorial/doc/http://java.sun.com/xml/saaj/index.jsphttp://http//www.developpez.net/forums/profile.php?mode=viewprofile&u=21933http://www.jcp.org/en/jsr/detail?id=222http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    11/55

    La FAQ Java EE

    - 11 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Orient Requte Orient Composant

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    12/55

    La FAQ Java EE

    - 12 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > Java EE

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    13/55

    La FAQ Java EE

    - 13 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > Java EE > Gnralits

    Comment connatre le navigateur utilis par un utilisateurAuteurs : Didier ,

    Cette information peut tre retrouve dans le header de la requte:

    String browser = request.getHeader("user-agent");

    Comment faire pour ne pas afficher l'arborescence de l'application lorque

    l'utilisateur entre simplement le contexte de l'application dans l'URL?

    Auteurs : Stessy ,Pour que l'utilisateur ne puisse pas voir l'arborescence de l'application lorqu'il indique uniquement le contexte del'application dans l'URL, il suffit simplement d'ajouter un lment dans le fichier web.xml qui s'il existe, sera utilispar le conteneur comme page par dfaut.

    welcome.jsp

    Quelles sont les diffrentes portes existantes ?

    Auteurs : Stessy ,

    Les objets crs que ce soit dans les JSP ou les Servlets ont une certaine porte, c'est dire une certaine dure de vie.Les diffrentes portes existantes sont:

    page : les objets ne sont accessibles que dans la page o ils sont dfinis request : les objest sont accessibles pendant toute la dure de la requte session : les objets sont accessibles pendant toute la dure de la session application : les objest sont accessibles pendant toute la dure de vie de l'application et dans l'application complte

    Quelles sont les differences entre un serveur web et un serveur d'application?Auteurs : adiGuba ,

    Un serveur d'application a pour objectif de facilit la cration d'application serveur sans se soucier de l'aspect rseau(toute la couche rseau est laisse au serveur d'application).Un serveur web peut grer plusieurs sites indpendemment, il peut utiliser plusieurs langages/technologies diffrents(ASP, PHP, JavaEE), gre les transactions scuriss...La confusion vient du fait que la plupart du temps les applications JavaEE sont des applications Web, pour la simpleraison que cela permet de ne pas distribuer d'application cliente (un navigateur suffit).

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://http//www.developpez.net/forums/u1382/stessy/http://http//www.developpez.net/forums/u1382/stessy/http://www.developpez.net/forums/u348/didier/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    14/55

    La FAQ Java EE

    - 14 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > JSP

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    15/55

  • 8/14/2019 La Faq Java Ee

    16/55

    La FAQ Java EE

    - 16 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Une erreur s'est produite !

    Attribut de requete

    =null

    =

    =null

    =

    Exception

  • 8/14/2019 La Faq Java Ee

    17/55

    La FAQ Java EE

    - 17 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    printRecursiveException(out,parent);

    out.println("");

    }

    }%>

    Comment appliquer ma page d'erreur toutes mes pages JSP ?

    Auteurs : syj ,

    java.lang.Throwable

    /error.jsp

    Note: L'insertion doit se faire entre session-config et ressource-ref mais je ne suis pas sur que soit le session-configet ressource-ref qui entoure directement cette balise.

    Que sont les objets implicites?

    Auteurs : Stessy ,

    Des objets sont dit implicites car il ne nous est pas ncessaire de les dclarer ou de les initialiserLes objest le plus souvent utiliss sont:

    request : lorsqu'un navigateur envoie une requte vers le serveur, il est possible que celui-ci envoie un certainnombre de paramtres.Il existe deux sortes de paramtres: Les paramtres se trouvant dans l'URL comme par exemple http://www.monsite.com/path/de/ma/page?

    param1=valeur1&param2=valeur2 Les paramtres de formulaire: ces dernier sont transmis dans le corps de la requte

    response : cet objet contient la rponse envoye au client. La porte de cette instance est la page out : peut tre employ dans les scriptlets pour crire des donnes dans la page qui sera envoye au client. La

    porte de cette instance est la page session : cet objet contient, comme son nom l'indique, tous les objets relatif la session

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://http//www.developpez.net/forums/u1382/stessy/http://www.developpez.net/forums/u7386/syj/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    18/55

    La FAQ Java EE

    - 18 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > JSP > JSTL (Java Standard Tag Library)

    Quels sont les objectifs de la JSTL?Auteurs : adiGuba ,

    Le but de la JSTL est de simplifier le travail des auteurs de page JSP, c'est dire la personne responsable de la coucheprsentation d'une application web Java EE.En effet, un web designer peut avoir des problmes pour la conception de pages JSP du fait qu'il est confront unlangage de script complexe qu'il ne matrise pas forcment.La JSTL permet de dveloppez des pages JSP en utilisant des balises XML, donc avec une syntaxe proche des langagesutiliss par les web designers, et leurs permet donc de concevoir des pages dynamiques complexes sans connaissancesdu langage Java.Sun donc proposer une spcification pour une librairie de tags standard : la Java Standard Tag Library (JSTL). C'est dire qu'il spcifie les bases de cette librairie, mais qu'il laisse l'implmentation libre (de la mme manire que pourles serveur Java EE qui son des implmentations de la spcification Java EE).

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    19/55

    La FAQ Java EE

    - 19 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > JSP > JSTL (Java Standard Tag Library) > Librairie de base

    Comment afficher une expression?Auteurs : adiGuba ,

    Le tag permet d'valuer une expression et de l'afficher dans la page JSP

    Le Corps du tag peut tre utilis la place de l'attribut default.

    Inconnu

    Pour de plus amples informations sur les attributs disponibles pour ce tag

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://adiguba.developpez.com/tutoriels/j2ee/jsp/jstl/#L-c:outhttp://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    20/55

    La FAQ Java EE

    - 20 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > JSP > JSP Taglibs

    Que sont les JSP Taglibs ?Auteurs : adiGuba ,

    Une JSP Taglib est une collection d'actions prdfini destines tre utilis dans une page JSP sous forme de tag(balise XML). Elle se compose d'un descripteur de taglib (Tag Librarie Descriptor) et d'un ensemble de classe Javaimplmentant l'interface JspTag. Le descripteur de taglib (*.tld) est un document XML qui dcrit les associations enles balises et la classe Java.Ces actions sont reprsentes dans le source JSP comme une balise XML. Lors de la compilation de la JSP, ces balisessont remplaces par des appels vers la classe Java correspondante.On peut citer comme exemple les balises standards prfixes avec jsp :

    etc...

    L'utilisation de taglib permet de limiter l'utilisation de code Java dans une page JSP, voir de totalement le supprimer.Une Taglib est compos de trois lments:

    Le Tag Librarie Descriptor qui effectue le mapping entre les tags et les classes Java. Les classes Java implmentant les diffrents Tag (implmentant l'interface Tag , ou une de ses interfaces filles

    IterationTag et BodyTag . Les classes Java implmentant TagExtraInfo afin d'apporter des informations supplmentaires sur les tags

    (optionnel).

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    21/55

    La FAQ Java EE

    - 21 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > JSP > JSP Taglibs > Taglibs 1.1

    Comment utiliser une librairie de tag (taglib) ?Auteurs : adiGuba ,

    Une librairie de tag peut tre distribu sous deux formes :

    Le descripteur de fichier est spar des classes Java... Le descripteur de fichier est inclut dans le Jar avec les classes et possde le nom suivant : "META-INF/taglib.tld".

    Afin de pouvoir utiliser cette taglib dans un fichier JSP, il faut la dclarer avec la directive taglib .Respectivement avec le code suivant :

    ou

    ]]>

    Toutefois, il est prfrrable de ne pas utiliser ces notations sous cette forme.En effet, tant donn que la directive taglib doit tre prsente sur toutes les pages JSP qui l'utilisent, les modificationsdu nom du descripteur de taglib pourrait tre longue et pnible.Afin de faciliter la maintenance, il faut dclarer la taglib dans le fichier web.xml :

    taglib-URI

    /WEB-INF/lib/taglib-v1.0.jar

    ]]>

    Et utiliser l'URI dans les JSP :

    ]]>

    Ainsi, les changements de fichier de descripteur s'effectue seulement dans le fichier web.xml ...Enfin, pour utiliser les tags de la librairie, il suffit de les prfix par le prefixe indiqu dans la directive taglib :

    ]]>

    Comment l'interface Tag fonctionne-t-elle ?

    Auteurs : adiGuba ,

    L'valuation d'un Tag JSP aboutit aux appels suivants :

    Les mthodes setParent(Tag) et setPageContext(PageContext) sont renseignes, ainsi que d'ventuels attributsprsents dans le tag.

    La mthode doStartTag() est appele. Son code de retour dtermine l'affichage du contenu de la balise. Si le retourvaut Tag.EVAL_BODY_INCLUDE , le corps est valu et crit dans le JspWriter de la page, mais il est ignor

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    22/55

    La FAQ Java EE

    - 22 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    si il vaut Tag.SKIP_BODY . Si Tag.EVAL_BODY_INCLUDE est retourn alors que la balise n'a pas de corps,il est ignor.

    La mthode doEndTag() est appele. Son code de retour dtermine si le reste de la page doit tre valu ou pas. Si leretour vaut Tag.EVAL_PAGE , le reste de la page est valu, mais il est ignor si le retour vaut Tag.SKIP_PAGE .

    Enfin, la mthode release() est appele avant que l'objet ne soit rendu au garbage collector.Attention toutefois, afin d'viter trop d'allocation, les tags sont conservs en cache et rutiliss (tout comme les Servlet/JSP)...La classe javax.servlet.jsp.tagext.TagSupport propose une implmentation par dfaut de l'interface Tag (et de soninterface fille IterationTag ).

    Comment l'interface IterationTag fonctionne-t-elle ?

    Auteurs : adiGuba ,L'interface IterationTag tend l'interface Tag . Elle hrite donc de toutes ses proprits et permet d'effectuer desitrations sur le contenu de la balise :La mthode doAfterBody() est appele aprs chaque affichage du corps du tag. Son code de retour determine sile corps doit tre rvalu ou pas. Si le retour vaut IterationTag.EVAL_BODY_AGAIN , le corps sera rvalu,mais si le retour vaut Tag.SKIP_BODY , on passe la fin du tag ( doEndTag() ) sans rvaluer le corps. La classejavax.servlet.jsp.tagext.TagSupport propose une implmentation par dfaut de l'interface IterationTag .

    Comment l'interface BodyTag fonctionne-t-elle ?

    Auteurs : adiGuba ,

    L'interface BodyTag tend l'interface IterationTag. Elle hrite donc de toutes ses proprits, mais permet plus detraitement sur le corps de la balise :La mthode doStartTag() peut dsormais retourner BodyTag.EVAL_BODY_BUFFERED .Dans ce cas (et dans ce cas seulement), les mthodes setbodyContent() puis doInitBody() sont appeles avant la premirevaluation du corps de la balise.La mthode setBodyContent() permet au serveur d'application d'indiqu un buffer qui sera utilis pour crire le contenudu corps.La mthode doInitBody() est appele avant la premire valuation du corps du message.La classe javax.servlet.jsp.tagext.BodyTagSupport propose une implmentation par dfaut de l'interface BodyTag .

    Comment crire le descripteur de taglib (TLD) ?

    Auteurs : adiGuba ,

    Le Tag Library Descriptor dcrit les diffrents tag de la librairie.Il s'agit d'un fichier XML qui prend la forme suivante :

    1.0

    1.1

    name

    Description de la taglib

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://www.developpez.net/forums/u1195/adiguba/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    23/55

    La FAQ Java EE

    - 23 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    ...

    Aprs l'entte XML et la dclaration du doctype, on a les lments suivants :

    tlibversion : Numero de version de la librairie. jspversion : Version minimum des JSP requise pour pouvoir utilis la librarie (optionnel, dfaut: 1.1). shortname : Indique le prefix par dfaut de la librairie pour les EDI compatible (ceci n'est qu'a titre indicatif, le

    prefix de la directive est utilis). uri : Une URI unique qui identifie cette version de la taglib (optionnel). info : Un texte de description de la taglib (optionnel). tag : Une ou plusieurs mapping de balise avec les classes Java.

    Dans un Jar, ce fichier doit se situer dans le rpertoire META-INF avec le nom taglib.tld afin de pouvoir rfrencerdirectement le fichier Jar.

    Comment faire le mapping entre un nom de balise et une classe Tag ?

    Auteurs : adiGuba ,

    Dans le fichier TLD, il faut ajouter, pour chaque tag, les balises suivantes :

    name

    package.NameTag

    package.NameTEI

    JSPdescription

    arg1

    false

    true

    Avec les lments suivants :

    name : Nom de la balise (Utilisation: ). tagclass : Nom de la classe Java qui reprsente cette balise (hrite de Tag).

    teiclass : Nom de la classe Java qui fournit des informations complmentaire sur la balise (optionnel). bodycontent : Type de contenu que peut accepter la balise, peut prendre les valeurs empty (pas de corps), JSP (lecontenu est interprt comme du JSP), ou tagdependent (le contenu n'est pas interprt) (optionnel, dfaut: JSP).

    info : Un texte de description du tag (optionnel). attribute : Zro, une, ou plusieurs dclarations d'attribut du tag, dcompos de la manire suivante :

    name : Nom de l'attribut. La classe tagclass doit possder un mutateur pour cet attribut. required : true/false , indique si l'attribut est obligatoire ou pas (optionnel, dfaut: false )

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    24/55

  • 8/14/2019 La Faq Java Ee

    25/55

    La FAQ Java EE

    - 25 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    donnera l'affichage suivant :

    Hello World !

    Comment utiliser des attributs de balise ?

    Auteurs : adiGuba ,

    Cet exemple se base sur l'exemple prcdent.

    Nous allons amliorer notre tag prcdent en lui ajoutant un attribut name.Si name est prsent, on devra afficher "Hello " suivi de la valeur de l'attribut name, sinon on affiche "Hello World".Le code prcdent devient :

    publicclass HelloTag extends TagSupport {

    private String name =null;

    publicvoid setName(String string) {

    name = string;

    }

    publicint doStartTag() throws JspException {

    if (name==null) name ="World";

    try{ pageContext.getOut().println ("Hello "+ name +" !");

    }catch (IOException e) {

    thrownew JspException ("I/O Error", e);

    }

    return SKIP_BODY;

    }

    }

    Explication:

    On ajoute une variable name ainsi que son mutateur setName() .Le mutateur setName() est obligatoire car il sera utilis afin d'initialiser l'attribut de classe name avec la valeur

    de l'attribut du tag , avant d'appeller doStartTag() . Dans doStartTag() , on affiche "Hello " + name + " !" ...

    enfin, on modifie le TLD de la manire suivante :

    hello

    HelloTag

    empty

    name

    Ainsi la page JSP :

    http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    26/55

    La FAQ Java EE

    - 26 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/



    donnera l'affichage suivant :

    Hello World ! Hello Fred !

    Comment crer un tag conditionnel ?

    Auteurs : adiGuba ,

    On peut avoir besoin d'excuter une portion de code seulement si une condition est vrifi.Par exemple, on va excuter le corps d'un tag seulement si l'attribut indiqu en paramtre est prsent dans la session :

    publicclass IsPresentTag extends TagSupport {

    private String name ="World";

    publicvoid setName(String string) {

    name = string;}

    publicint doStartTag() throws JspException {

    if (name==null) thrownew JspException ("name est null !");

    if (pageContext.getAttribute(name,PageContext.SESSION_SCOPE) !=null )

    return EVAL_BODY_INCLUDE;

    return SKIP_BODY;

    }

    }

    ainsi le code suivant :

    [ Vous tes en ligne ]

    remplace le scriplet suivant :

    [ Vous tes en ligne ]

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    27/55

    La FAQ Java EE

    - 27 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Comment crer un tag itratif ?

    Auteurs : adiGuba ,

    Afin de crer un tag itratif, il faut implmenter l'interface IterationTag .Toutefois, TagSupport implmente dj cette interface, on pourra donc tendre cette classe afin de bnficier desmthodes par dfaut...Notre tag itratif effectuera un certain nombre de boucle selon un paramtre count.Son mapping serait :

    iterateIterateTag

    JSP

    count

    true

    Et son code source :

    publicclass IterateTag extends TagSupport {

    privateint count =0;

    privateint current;

    publicvoid setCount(int i) { count = i; }

    publicint doStartTag() throws JspException {

    current =0;

    if (current < count) return Tag.EVAL_BODY_INCLUDE;

    return Tag.SKIP_BODY;

    }

    publicint doAfterBody() throws JspException {

    current++;

    if (current < count) return IterationTag.EVAL_BODY_AGAIN;

    return Tag.SKIP_BODY;

    }

    }

    Explication :

    L'attribut count contiendra la valeur de l'attribut de la balise.Il n'y a pas de conversion String/int effectuer car elle est automatique puisque le mutateur prend un int enparamtre.En cas de valeur incorrecte, une exception est lance...

    Dans doStartTag() , on initialise current qui contiendra le nombre de ligne dj affich. Il est important del'initialis dans doStartTag() car la mme instance de Tag peut tre utilis plusieurs fois...

    Utilisation :

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    28/55

    La FAQ Java EE

    - 28 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Cette ligne sera affiche trois fois


    Rsultat:

    Cette ligne sera affiche trois fois

    Cette ligne sera affiche trois fois

    Cette ligne sera affiche trois fois

    Comment interagir avec le contenu du tag ?

    Auteurs : adiGuba ,

    Il peut tre intressant d'interagir avec le corps de la balise.Par exemple, dans le cas d'un tag itratif, on peut avoir besoin du numro de ligne courant dans le body.Pour cela, il suffit de stocker des lments dans un des scopes (page, request, session, application)...On reprend donc le tag prcdent et on met le numro de la ligne dans le scope "page".Notre code devient alors :

    publicclass IterateTag extends TagSupport {

    privateint count =0;

    privateint current =0;

    publicvoid setCount(int i) { count = i; }

    publicint doStartTag() throws JspException {

    current =0;

    if (current < count) {

    pageContext.setAttribute("line", new Integer(current) );

    return Tag.EVAL_BODY_INCLUDE;

    }

    return Tag.SKIP_BODY;

    }

    publicint doAfterBody() throws JspException {

    current++;

    if (current < count) {

    pageContext.setAttribute("line", new Integer(current) );

    return IterationTag.EVAL_BODY_AGAIN;

    }

    return Tag.SKIP_BODY;}

    publicint doEndTag() throws JspException {

    pageContext.removeAttribute("line");

    return Tag.EVAL_PAGE;

    }

    }

    Explication:

    Avant chaque valuation du corps, on place dans le scope "page" un attribut "line" contenant un Integercontenant le numro de ligne courante.

    Dans doEndTag(), on supprime cet attribut afin de ne pas 'polluer' inutilement le reste de la page.

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    29/55

    La FAQ Java EE

    - 29 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Note : On peut galement proposer un attribut supplmentaire afin de changer le nom de l'attribut stock dans le scope"page", ainsi que le scope utiliser...Utilisation :

    Ligne numro

    Rsultat :

    Ligne numro 0 Ligne numro 1 Ligne numro 2

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    30/55

    La FAQ Java EE

    - 30 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > JSP > JSP Taglibs > Taglibs 1.2

    Comment dfinir/modifier des variables de script dans un Tag ?Auteurs : adiGuba ,

    Il est possible de dfinir ou de modifier des variables de script via un Tag JSP.Dans l'exemple prcdent, l'interaction entre le Tag et la page JSP se fait en rcuprant la rfrence de l'objet avecun getAttribute().Afin de permettre l'utilisation d'une variable de script, nous allons crer une classe qui tend TagExtraInfo :

    publicclass IterateTEI extends TagExtraInfo {

    public VariableInfo[] getVariableInfo(TagData data) {

    VariableInfo[] info =new VariableInfo[1];

    info[0] =new VariableInfo ("line", "java.lang.Integer", true, VariableInfo.NESTED);

    return info;}

    }

    Explication :La mthode getVariableInfo() permet de dfinir des variables de script cre ou modifie par le Tag . Elle retourne untableau de VariableInfo , qui est constitu de quatre lments :

    Le nom de la variable de script. Le nom du type de l'objet de la variable. Un boolen indiquant si il s'agit d'une nouvelle variable ou pas (c'est dire si elle doit tre dclar). Enfin, le dernier argument dfinit le bloc dans lequel la variable sera accessible, il peut prendre les valeurs

    suivantes : VariableInfo.AT_BEGIN : La variable est dfinit au dbut du tag et accessible jusqu' la fin du bloc qui

    contient le tag. VariableInfo.AT_END : La variable est dfinit la fin du tag et accessible jusqu' la fin du bloc qui contient

    le tag. VariableInfo.NESTED : La variable est dfinit au dbut du tag et accessible seulement dans le corps du tag.

    Attention, le nom de la variable de script doit correspondre un lment dans un des scope (dans l'ordre: page, request,session, application).La variable de script est synchronise avec son quivalent dans le scope, donc il peut y avoir un conflit si le mme nomest utilis dans deux scopes diffrents.Pour pouvoir utiliser cette variable, il faut ajouter la balise dans la dfinition du tag dans le TLD :

    iterate

    IterateTag

    IterateTEI

    JSP

    count

    true

    Pour pouvoir utilis le code suivant :

    Ligne numro

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    31/55

    La FAQ Java EE

    - 31 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Rsultat :

    Ligne numro 0

    Ligne numro 1

    Ligne numro 2

    Note :La mthode getVariableInfo() possdent un TagData qui permet d'accder aux attributs du tag, afin de pourvoirchanger dynamiquement le nom de la scriplet selon un attribut par exemple.

    Comment modifier le corps du tag ?Auteurs : adiGuba ,

    On peut donc modifier le corps du Tag avant de l'crire dans la page JSP.Par exemple, on va faire un Tag pour empcher une partie de code HTML d'tre interprt par le navigateur (c'est dire en remplaant les caractres < et > par < et >...).On utilisera pour cela la lecture buffris de l'interface BodyTag en hritant de son implmentation BodyTagsupport :

    publicclass HtmlCodeTag extends BodyTagSupport {

    publicint doStartTag() throws JspException {

    return BodyTag.EVAL_BODY_TAG;

    }

    publicint doAfterBody() throws JspException {

    try{

    String bodyString = getBodyContent().getString();

    bodyString = bodyString.replaceAll("", ">");

    bodyString = bodyString.replaceAll("\t", " ");

    bodyString = bodyString.replaceAll("\n", "
    \n");

    getPreviousOut().println(bodyString);

    }catch (IOException e) {

    thrownew JspException (e);

    }

    return SKIP_BODY;

    }

    }

    Dans le TLD :

    htmlCode

    HtmlCodeTag

    Explication : La mthode doStartTag() retourne BodyTag.EVAL_BODY_TAG afin d'utiliser l'valuation buffrisdu corps du Tag . Dans la mthode doAfterBody() , on rcupre le corps du tag valu en String. On modifieensuite cette String pour remplacer les caractres "", "\t" et "\n" par du code HTML. Puis on affiche lachane ainsi transform... Note : Avec les JSP 1.2, BodyTag.EVAL_BODY_TAG est dprci et est remplac par

    BodyTag.EVAL_BODY_BUFFERED . A l'utilisation, cela donne :

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    32/55

    La FAQ Java EE

    - 32 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Example HTML

    Un paragraphe de texte avec des mots en gras, et d'autres en italique...

    Et on obtient :

    Example HTML

    Un paragraphe de texte avec des mots en gras, et d'autres en italique...

    Le fait de pouvoir modifier le corps du Tag apporte un plus indniable par rapport l'interface Tag ou IterationTag .En effet, on peut facilement modifier le corps AVANT de l'crire sur la page JSP. De ce fait, on peut rellement changerle formatage du corps dans on ensemble...

    Comment valider les attributs du tag avec TagExtraInfo ?

    Auteurs : adiGuba ,

    La classe TagExtraInfo permet galement de valider les attributs du tag avant de l'excuter.Il faut pour cela redfinir la mthode isValid() et utiliser le paramtre TagData pour analyser les paramtres.Si isValid() retourne false une exception sera lance.

    Comment empcher le compilateur d'interprter le corps du Tag ?

    Auteurs : adiGuba ,

    L'exemple prcdent permet d'afficher du code HTML, mais on peut galement vouloir afficher des scriplets Java oumme des Tag JSP sans qu'ils ne soient interprt.En effet, le code suivant :

    Example HTML

    Code Java TagLib :

    donnera:

    Example HTML

    Code Java Fri Dec 10 17:45:19 CET 2004

    TagLib : Hello World !

    Il faut spcifier que le corps du tag n'est pas du code JSP afin qu'il ne soit pas interprt.

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    33/55

    La FAQ Java EE

    - 33 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Pour cela, on va crer un nouveau Tag htmlJspCode qui utilisera la mme classe que htmlCode, mais en spcifiant quele corps est dpendant du tag (il ne sera pas interprt) :

    htmlJspCode

    HtmlCodeTag

    tagdependent

    Ainsi le code suivant :

    Example HTML

    Code Java TagLib :

    donnera:

    Example HTML

    Code Java

    TagLib :

    Ceci peut galement permettre d'insrer d'autre langages de scripts (Perl, Php, Shell Script, etc.) au sein d'une pageJSP...

    Comment grer les exceptions d'un tag ?

    Auteurs : adiGuba ,

    L'API des taglibs propose une interface TryCatchFinally afin de grer les exceptions gnres par un Tag.Si un tag implmente l'interface TryCatchFinally, il doit implmenter deux nouvelles mthodes :

    doCatch() qui correspondra au bloc catch.

    doFinally() qui correspondra au bloc finnaly.

    Concrtement, cela signifie que si un tag implmente TryCatchFinally, les appels aux mthodes doXXXX() des interfacesTag, IterationTag et BodyTag seront excut l'intrieur d'un bloc try/catch de la forme suivante :

    try{

    ...

    tag.doStartTag();

    ...

    tag.doInitBody();

    ...

    tag.doAfterBody();

    ...

    tag.doEndTag();...

    }catch (Throwable t) {

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    34/55

    La FAQ Java EE

    - 34 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    tag.doCatch(t);

    }finally{

    tag.doFinally();

    }

    Comment crire des tags collaboratifs ?

    Auteurs : adiGuba ,

    Les tags peuvent communiquer simplement avec le tag parent, c'est dire le tag qui englobe le tag courant.Par exemple, dans le code suivant:

    Le tag iterate est le parent du tag htmlCode et du tag htmlJspCode .htmlCode est lui mme parent du tag hello ...Mais il n'existe aucune parent entre htmlCode et htmlJspCode ...La mthode getParent() permet d'accder au tag parent , pour ventuellement interagir avec ce dernier.A Noter galement l'existence de la mthode statique TagSupport.findAncestorWithClass(Tag,Class) qui permet derechercher un parent selon son type dans la hirarchie des tags..

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1195/adiguba/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    35/55

  • 8/14/2019 La Faq Java Ee

    36/55

    La FAQ Java EE

    - 36 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire > Servlets > Gnralits

    Pourquoi n'y a-t-il pas de constructeur dans une servlet?Auteurs : Stessy ,

    Une servlet est un peu comme un applet par le fait qu'elle possde une mthode init() qui agit en tant que constructeur.Puisque l'environnement de servlet prend soin d'instancier la servlet, un constructeur explicite n'est pas ncessaire.

    N'importe quel code d'initialisation que vous devez utiliser devrait tre plac dans la mthode init() puisque cettemthode est appele lorsque le servlet est charge par le conteneur de servlet.

    Quelle est la diffrence entre les mthodes doGet() et doPost()?

    Auteurs : Stessy ,

    doGet() est appele la suite d'une requte de typeHTTP GET. Cela se passe gnralement lorsqu'un utilisateur cliquesur un lien ou lorsque celui-ci entre une URL dans la barre d'adresse du navigateur.

    La mthodedoPost() est appele en rponse d'une requteHTTP POST.

    Les 2 mthodes sont appeles partir de l'implmentation par dfaut de la mthodeservice() se trouvant dans la classede baseHttpServlet

    Fondamentalement le navigateur demande toujours des pages par l'intermdiaire de GETet peut envoyer des donnes

    sous les 2 formes GETetPOST. Les 2 seules diffrences rsident dans le fait que :

    GETest restreint au niveau de la taille des paramtres envoys au serveur. Cela veut dire qu'il est, la plupart du

    temps, prfrable d'envoyer des donnes avec la mthodePOST. En envoyant des donnes par l'intermdiaire de GET voque galement une question concernant la scurit

    puisqu'elles sont ajoutes la suite de l'URL. Pour cette raison il est plus prudent d'utiliser la mthode POST

    pour envoyer des donnes au serveur.

    Comment connaitre la version de l'API servlet utilise par un moteur de servlet?

    Auteurs : Stessy ,

    L'interface ServletContext inclut les mthodesgetMajorVersion() etgetMinorVersion() pour vous indiquer quelle versionde l'API Servlet est utilise.Un petit exemple :

    //Si le moteur de servlet implmente la spec 2.4 de l'API servlet

    //majorVersion est gal 2

    int majorVersion = getServletContext().getMajorVersion();

    //minorVersion est gal 4

    int minorVersion = getServletContext().getMinorVersion();

    Comment accder un JavaBean depuis une servlet?

    Auteurs : Stessy ,

    Pour pouvoir partager des variables entre vos pages JSP et vos servlets, vous devez savoir comment crer et accder ces variables depuis vos servlets.Les diffrents exemples qui vont suivre dpendent de la porte, ou si vous prferez, la dure de vie de vos objets.

    Pour en savoir plus sur les diffrentes portes existantes, reportez vous la section suivante : Quelles sont lesdiffrentes portes existantes?

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/?page=JavaEE_GENERALITES#JavaEE_GENERALITES_SESSIONS_PORTEEShttp://http//www.developpez.net/forums/u1382/stessy/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/?page=JavaEE_GENERALITES#JavaEE_GENERALITES_SESSIONS_PORTEEShttp://java.developpez.com/faq/javaee/?page=JavaEE_GENERALITES#JavaEE_GENERALITES_SESSIONS_PORTEEShttp://http//www.developpez.net/forums/u1382/stessy/http://http//www.developpez.net/forums/u1382/stessy/http://http//www.developpez.net/forums/u1382/stessy/http://http//www.developpez.net/forums/u1382/stessy/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    37/55

    La FAQ Java EE

    - 37 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    page :

    Dans cet exemple, le Bean est instanci comme une variable locale est n'est donc pas partageable entre diffrentesservlets.

    com.developpez.beans.MyBean myBean =new

    com.developpez.beans.MyBean();

    request :

    Dans cet exemple, le Bean instanci sera accessible pendant toute la dure de la requte

    com.developpez.beans.MyBean myBean =

    (com.developpez.beans.MyBean) request.getAttribute("myBean");if (myBean ==null) {

    myBean =new com.developpez.beans.MyBean();

    request.setAttribute("myBean", myBean);

    }

    session :

    Dans cet exemple, lorsque le Bean est instanci il est plac dans la session actuelle.

    HttpSession session = request.getSession(true);

    com.developpez.beans.MyBean myBean =

    (com.developpez.beans.MyBean) session.getAttribute("myBean");if (myBean ==null) {

    myBean =new com.developpez.beans.MyBean();

    session.setAttribute("myBean", myBean);

    }

    application :

    Dans ce dernier exemple, lorsque le Bean est instanci il est plac dans le contexte de la servlet.

    com.developpez.beans.MyBean myBean =

    (com.developpez.beans.MyBean) getServletContext().getAttribute("myBean");

    if (myBean ==null) {

    myBean =new com.developpez.beans.MyBean();getServletContext().setAttribute( "counter", counter);

    }

    Quel est l'objet ServletConfig et quelle est son utilit

    Auteurs : Stessy ,

    L'objet ServletConfig est une interface. Cette interface contient les 4 mthodes suivantes

    getInitParameter(java.lang.String name) Cette mthode retourne un String contenant le paramtre d'initialisation de la servlet correspondant au

    paramtrename getInitParameterNames()

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://http//www.developpez.net/forums/u1382/stessy/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    38/55

    La FAQ Java EE

    - 38 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Cette mthode retourne un objetEnumration contenant les paramtres d'initialisation de la servlet getServletContext()

    Cette mthode retourne une rfrence de l'interface ServletContextC'est la mthode la plus valable car elle permet de partager l'information travers l'application

    getServletName() Cette mthode retourne un String contenant le nom de l'instance de la servlet

    Comment modifier le Time Out par dfaut de session?

    Auteurs : bahamouth ,

    Dans le fichier web.xml situ dans le rpertoire WEB-INF de l'application, il suffit d'ajouter les lignes suivantes:

    60

    Comment modifier le Time Out par de session par programmation?

    Auteurs : Jaxofun ,

    Comme ceci

    request.getSession().setMaxInactiveInterval( int);

    Comment charger des servlets de l'application au dmarrage de Tomcat?

    Auteurs : bahamouth ,

    Dans le fichier web.xml du rpertoire WEB-INF lors de la dclaration du servlet, rajouter la ligne:

    1

    Exemple:

    Controller

    Controller

    com.company.Controller

    index

    /index.jsp

    1

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://http//www.developpez.net/forums/u14756/bahamouth/http://www.developpez.net/forums/u25644/jaxofun/http://http//www.developpez.net/forums/u14756/bahamouth/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    39/55

    La FAQ Java EE

    - 39 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Comment lire un message d'erreur de Tomcat ?

    Auteurs : christopheJ ,

    Ces messages sont composs de deux parties. Pour dbugger il faut regarder la deuxieme partie qui commence aprs:

    root cause

    Ou enore le message

    cause mere

    L'erreur est alors indique sous la forme d'une exception.

    Comment placer et rcuprer un paramtre d'initialisation d'une servlet?

    Auteurs : Righetto Dominique ,

    Placer la dfinition dans la description de votre servlet dans le fichier web.xml comme ceci

    maServlet

    Ma Servlet

    Ce que fait ma servlet

    com.servlet.MaServlet

    MON_PARAM

    Bonjour

    Puis dans le code de votre servlet, utilisez ceci pour rcuprer la valeur de MON_PARAM

    getInitParameter("MON_PARAM");

    Si vous dsirez mettre plus de paramtres, il suffit d'ajouter des dclarations comme ceci

    maServlet

    Ma Servlet

    Ma Servlet

    com.servlet.MaServlet

    MON_PARAM

    Bonjour

    MON_PARAM_2

    Bonjour

    http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://java.developpez.com/faq/javaee/http://www.developpez.net/forums/u1623/righetto-dominique/http://http//www.developpez.net/forums/u35163/christophej/http://java.developpez.com/faq/javaee/http://www.developpez.com/
  • 8/14/2019 La Faq Java Ee

    40/55

  • 8/14/2019 La Faq Java Ee

    41/55

    La FAQ Java EE

    - 41 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    try{

    from=new BufferedInputStream(new FileInputStream(file), bufferSize *2);

    byte[] bufferFile =newbyte[bufferSize]; for (int i =0; ; i++) {

    int len = from.read(bufferFile);

    if (len

  • 8/14/2019 La Faq Java Ee

    42/55

    La FAQ Java EE

    - 42 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    com.dvp.faq.javaee.MyHttpSessionListener

  • 8/14/2019 La Faq Java Ee

    43/55

    La FAQ Java EE

    - 43 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sourcesconstitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2003 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucunereproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de DeveloppezLLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://java.developpez.com/faq/javaee/

    Sommaire >