IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[JSP] les "include"


Sujet :

Servlets/JSP Java

  1. #1
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut [JSP] les "include"
    Salut,
    J'suis en train de reécrire des JSP qui sont composées de bout de code disséminés dans des fichiers séparés.
    Pour les utiliser, il sont inclut avec la directive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ include file="...">
    Ce qui fait que j'ai des problèmes de variables dupliquées : certaine variable sont definies dans deux fichier distincts, si je les inclut dans le même jsp, ben ça casse
    Donc, je me demande si ça serait pas plus "propre" de faire des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:include page="...">
    Si j'ai bien compris, chaque fichier inclut serait alors une jsp à part entiere, mais est que ça va avoir d'autres impacts (je pense aux performances aussi )?

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    la premiere variante inclus le source, la second inclus la version compilée.
    Sur les performances je ne pense pas qu'il y est de différences notables après la premiere utilisation les deux sont compilées.

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonjour,

    zekey ce ne serait pas l'inverse ?

    La méthode service() d'une servlet est limitée en taille mémoire.
    De ce fait, il est parfois nécessaire de passer par des includes statiques sinon on a droit à un joli plantage pour de grosses jsp.

    Eric

  4. #4
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Non j'ai verifié --> http://java.sun.com/products/jsp/tag...axref1112.html

    jsp:include: envoi une requete et inclus le resultat

    <%@ include: inclus puis parse le fichier.

    Comme je le disais une fois que tu as acceder la premiere fois a la page:
    jsp:include : Page conteneur et contenu sont deja compilées

    <%@ include: page complete deja compilées

    Je ne pense pas que le buffer soit un problemen en l'occurence (sinon tu peux l'aggrandir dans le header du jsp)

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Salut,

    bon je pense qu'on est pas sur la même longueur d'onde. Voila comment je le conçoit en développement :

    Les pages utilisant les <%@ include ont cela de traitre que si la page incluse est modifiée, la servlet de la jsp "mère" n'est pas recompilée. Il faut donc soit supprimer à la main la servlet mère, soit modifier et réenregistrer la jsp mère pour que celle-ci recompile en servlet et tienne compte de la nouvelle version de la jsp incluse.

    D'ailleurs un petit lien pour MicroPuce : http://www-128.ibm.com/developerworks/library/j-jsp04293.html

    A+
    Eric

  6. #6
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Concernant le risque de la jsp mère pas recompilé, ce n'est pas (selon les specs de sun citées plus haut) une specs mais dépendant de l'implémentation.

    Some of the behaviors of the include directive depend on the particular JSP container you are using, for example:

    * The included file might be open and available to all requests, or it might have security restrictions.
    * The JSP page might be recompiled if the included file changes.
    Cependant si tu pense que jsp:include est mieux, nous sommes sur la même longueur d'onde, je le pense également mais la question de base concernait les perfs et pour ca je ne suis pas convaincu qu'il y est une reelle différence.

    Maintenant si quelqu'un as le temps le mieux c'est de benchmarker la choses.

  7. #7
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    En fait pour le coté perf, je me demande s'il vaut mieux une seule jsp qui contient des bouts de code inclus et qui seront compilés une seule fois.
    Ou bien pusieurs jsp compilées séparement puis assemblées, ce qui correspond (à peu près) au fonctionnement avec les jsp:include.
    Mais c'est vrai qu'en production, les jsp ne seront plus re-compilées, donc, c'est seulement la premiere compil qui sera plus ou moins longue.
    De toutes façon, je prefere aussi les jsp:include, ça rends mes pages indépendantes les unes des autres et je trouve le code plus lisible : pas besoin d'aller chercher dans les x @include pour savoir où une variable a été définie.
    A pluche

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo