Euh comment ça marche ? (Taglib) - Java - Programmation
Marsh Posté le 30-07-2002 à 23:02:26
exo_ a écrit a écrit : Question naze : "Comment ça marche les TagLibs ? " Et surtout : "Si je mets du code dans un TagLib, sera-t-il exécuté dans le même thread que le code de ma page Jsp où je l'aurai inséré ? La réponse à cette question dépend-telle de l'implémentation du serveur d'applications ?" Si quelqu'un a une vague idée sur la question, eh bien merci d'avance beaucoup beaucoup. |
Je pense que le taglib est executé dans le même thread pour la simple raison qu'il fait partie intégrante de la page et qu'on est obligé de les executer en 'sequence', donc aucun interet de multithreader... Par contre, faut verifier dans ton code en affichant le hashcode de la thread active et verifier que c bien le même...
Marsh Posté le 30-07-2002 à 23:32:10
therier a écrit a écrit : Par contre, faut verifier dans ton code en affichant le hashcode de la thread active et verifier que c bien le même... |
c'est plus sûr d'utiliser System.identityHashCode(tonThread) ... pour le cas où le hashCode ait été surchargé
Marsh Posté le 31-07-2002 à 09:46:12
benou a écrit a écrit : ... pour le cas où le hashCode ait été surchargé |
Tu serais pas un peu vicieux toi?
Marsh Posté le 31-07-2002 à 10:26:32
therier a écrit a écrit : Tu serais pas un peu vicieux toi? |
ben nan : le thread qui va être utilisé dans ta servlet va avoir été généré par le moteur de servlet. Ca m'étonnnerait pas du tout qu'ils gèrent un pool de Thread, et donc, on peut imaginer que dans ce cadre là ils peuvent avoir surchargé hashCode() ... Et puis si demain tu change de moteur de servlet et que ton appli se comporte bizarement, tu en chierais pas mal avant de comprendre que ca peut venir de là !
enfin, bon, moi je dis ca ... tu fais comme tu veux ...
Marsh Posté le 31-07-2002 à 10:33:11
bin pour la question du bonhomme, le code du taglib est executé dans la meme thread, c'est sur à 99, 999999% (sinon si tu fais un out.write dans ton tag, tu aurais pas de controle sur l'"endroit" ou c'est imprimé dans l'output non??)
cela dit rien ne t'empeche à priori de créer un thread dans le code de ton tag, mais c'est une autre histoire.
sinon pour voir comment ça fonctionne, tu mates le source de la servlet crée par ton moteur jsp (à partir de la jsp ou tu appelles ce tag donc... En gros ça crée une instance de l'objet tag et appelle les méthodes doStartTag() et les autres, et c tout, je crois.
Marsh Posté le 31-07-2002 à 11:24:04
Effectivement, dans le cadre limite de ma petite page qui est
servie par Tomcat, le code des tags et le code Jsp sont bien
executes dans le meme thread. Cependant, n'existe-t-il pas une
spec quelconque qui dit que tous les gens qui implementent des
serveurs d'applications avec Jsp et Taglib doivent faire en
sorte que ce soit le cas ? Car je ne veux pas que ma jolie
page parte en sucette a la premiere migration vers un serveur
exotique...
Quoiqu'il en soit, merci a tous pour vos reponses.
Marsh Posté le 31-07-2002 à 11:26:35
exo_ a écrit a écrit : Effectivement, dans le cadre limite de ma petite page qui est servie par Tomcat, le code des tags et le code Jsp sont bien executes dans le meme thread. Cependant, n'existe-t-il pas une spec quelconque qui dit que tous les gens qui implementent des serveurs d'applications avec Jsp et Taglib doivent faire en sorte que ce soit le cas ? Car je ne veux pas que ma jolie page parte en sucette a la premiere migration vers un serveur exotique... Quoiqu'il en soit, merci a tous pour vos reponses. |
Normalement le comportement DOIT etre le même sinon ton serveur n'est pas exotique, il est buggé!
Marsh Posté le 31-07-2002 à 14:05:21
de toute façon ca aurait pas bcp de sens que ce soir executé dans un thread différent ...
Marsh Posté le 31-07-2002 à 14:07:25
benou a écrit a écrit : de toute façon ca aurait pas bcp de sens que ce soir executé dans un thread différent ... |
...vu que le traitement est sequentiel...
Marsh Posté le 30-07-2002 à 19:09:11
Question naze : "Comment ça marche les TagLibs ? " Et surtout : "Si je mets du code dans un TagLib, sera-t-il exécuté dans le même thread que le code de ma page Jsp où je l'aurai inséré ? La réponse à cette question dépend-telle de l'implémentation du serveur d'applications ?" Si quelqu'un a une vague idée sur la question, eh bien merci d'avance beaucoup beaucoup.