OVH Cloud OVH Cloud

Question d'architecture (JSP, bean, datasource)

13 réponses
Avatar
Adobex
Bonjour,

Mon problème est le suivant:

J'ai un site perso sur serveur Tomcat 4.1.29 accompagné de mysql.
Je souhaite utiliser le modèle MVC pour réaliser mes JSP.

Le but étant de faire une architecture propre et adaptée à l'envergure (peu
importante pour l'instant) de mon site. Ca me sert également à tester les
différentes technos...

Comme je souhaite utiliser le MVC (donc éviter le code java dans les jsp) et
me servir du pool de tomcat pour connecter mon appli à la bdd, j'aimerais
savoir quels sont les choix les plus judicieux pour organiser mes JSP, Bean
et connexions.

J'ai plusieurs pages JSP et celles-ci ont des choses à faire avec la bdd.
Donc, est-il préférable de créer un bean par JSP (en scope session) ou un
seul bean pour toutes les JSP? Le site n'est pour le moment pas gros mais
cette idée me déplait dans le sens où on mélange toutes les actions au sein
d'une même entité. Par contre, je n'ai du coup qu'une seule connexion à la
datasource (par session) et cela peut être économique en terme de
ressources.

Je pense donc qu'il y a plus judicieux de façon à éviter de tout mélanger ou
d'avoir autant de connexions à la bdd que de beans.

Quels sont vos solutions ou références en la matière?

Merci d'avance.

Adobex

10 réponses

1 2
Avatar
Samuel Arnod-Prin

Quels sont vos solutions ou références en la matière?


utilise XML pour créer tes pages... et tu les transformes en HTML avec
XSL... si t'aimes les "nouvelles" technos.. c le top !

tu obtiens vraiment une séparation de l'html et du java au maximum....
en plus tu peux générer des pdf ou changer de look facilement...

Il y a Apache Cocoon pour ca...




Merci d'avance.

Adobex



Avatar
Sylvain
Tu utilises une connection par raffraichissement de pages. Il ne faut pas
garder la connection ouverte pendant le temps que l'utilisateur ne fait
rien, donc tu fermes la connection à la fin du chargement de la page.
Tu peux passer en parametre la connection à la BDD dans tes beans.
Avatar
Adobex
oui effectivement je peux utiliser XML, je vais même sans doute utiliser les
JSTL (que je connais) mais en fait, JSTL est parfois un peu lourd à utiliser
selon moi... le pire est la gestion des esperluettes et des fins de tags qui
doivent toujours être conforme au XML.

En revanche, même à titre d'info, j'aimerais vraiment savoir comment
architecturer convenablement de simples JSP faisant appel à différents
beans, eux-mêmes faisant appel aux datasources de Tomcat.



"Samuel Arnod-Prin" a écrit dans le message de
news:

Quels sont vos solutions ou références en la matière?


utilise XML pour créer tes pages... et tu les transformes en HTML avec
XSL... si t'aimes les "nouvelles" technos.. c le top !

tu obtiens vraiment une séparation de l'html et du java au maximum....
en plus tu peux générer des pdf ou changer de look facilement...

Il y a Apache Cocoon pour ca...




Merci d'avance.

Adobex






Avatar
Yaltar
Bonjour,
je me permet de donner mon humble avis, qui ne sera surement pas ce qu'il y
a de mieux mais bon, ca peut donner des idées.
Alors voila, ca va paraitre un peu "lourd" pour un petit site, mais moi ce
que je ferais ce serais un bean spécialisé pour chaque jsp, et chaqu'un de
ces bean n'attaque pas directement la session, mais un bean d'acces au
données accroché à la session, ceci permettant de bien découper les beans
par page, pour ecrire le code spécifique de chaque page, et tu n'as qu'un
bean d'acces au données, de plus en faisant comme ca, le jour ou tu souhaite
changer la provenance des données, tu n'as qu'un bean à réécrire.
Enfin, voila mon avis, si jamais je n'ai pas été clair, pas de problème faut
me le dire, et si y a d'autre questions aussi.
Bonne journée
Avatar
Adobex
"Sylvain" <slongepee @laposte.net> a écrit dans le message de
news:ndwTb.7501$
Tu utilises une connection par raffraichissement de pages. Il ne faut pas
garder la connection ouverte pendant le temps que l'utilisateur ne fait
rien, donc tu fermes la connection à la fin du chargement de la page.
Tu peux passer en parametre la connection à la BDD dans tes beans.


Ok, je pense comprendre ton point de vue. Mais est-ce efficace? Une
connexion par requête en somme? C'est pas top selon moi mais peut-être que
ce n'est pas du tout génant (du fait de l'utilisation du pool) même en terme
de performance. Tu peux confirmer?

Par contre, j'imagine davantage le bean se débrouiller tout seul pour
récupérer la datasource, je ne vois pas trop l'intérêt que la JSP ait
connaissance de la datasource, si c'est ce que tu sous-entendais par "passer
en paramètre la connexion à la BDD dans tes beans".
Bon justement, on touche ici le coeur de mon pb, c'est à dire l'architecture
des beans (héritages, interfaces ou que sais-je)

Avatar
Adobex
oui effectivement je peux utiliser XML, je vais même sans doute utiliser les
JSTL (que je connais) mais en fait, JSTL est parfois un peu lourd à utiliser
selon moi... le pire est la gestion des esperluettes et des fins de tags qui
doivent toujours être conforme au XML.

En revanche, même à titre d'info, j'aimerais vraiment savoir comment
architecturer convenablement de simples JSP faisant appel à différents
beans, eux-mêmes faisant appel aux datasources de Tomcat.



"Samuel Arnod-Prin" a écrit dans le message de
news:

Quels sont vos solutions ou références en la matière?


utilise XML pour créer tes pages... et tu les transformes en HTML avec
XSL... si t'aimes les "nouvelles" technos.. c le top !

tu obtiens vraiment une séparation de l'html et du java au maximum....
en plus tu peux générer des pdf ou changer de look facilement...

Il y a Apache Cocoon pour ca...




Merci d'avance.

Adobex






Avatar
Adobex
Oui voilà, c'est un peu l'idée que je me fais de l'architecture à adopter
mais par contre, le fait de faire appel à un bean à partir de la JSP, dédié
à la connexion à la datasource ne me séduit pas trop car en fait, il faut
ensuite informer les beans de JSP quelle datasource utiliser (tout ça par
l'intermédiaire de la JSP). J'imagine plutôt les beans utiliser quelque
chose de commun, en dehors de la JSP et qui ne crée pas de connexion à la
datasource plus que de raison. C'est à dire une par session active on va
dire.



"Yaltar" a écrit dans le message de
news:401e935f$0$3264$
Bonjour,
je me permet de donner mon humble avis, qui ne sera surement pas ce qu'il
y

a de mieux mais bon, ca peut donner des idées.
Alors voila, ca va paraitre un peu "lourd" pour un petit site, mais moi ce
que je ferais ce serais un bean spécialisé pour chaque jsp, et chaqu'un de
ces bean n'attaque pas directement la session, mais un bean d'acces au
données accroché à la session, ceci permettant de bien découper les beans
par page, pour ecrire le code spécifique de chaque page, et tu n'as qu'un
bean d'acces au données, de plus en faisant comme ca, le jour ou tu
souhaite

changer la provenance des données, tu n'as qu'un bean à réécrire.
Enfin, voila mon avis, si jamais je n'ai pas été clair, pas de problème
faut

me le dire, et si y a d'autre questions aussi.
Bonne journée


Avatar
Yaltar
oui, c'est ce que je dis schematiquement parlant on a


JSP => Bean associé à la JSP => Bean spécialisé dans l'acces au données

Donc dans ce cas la, la jsp ne touche pas aux accés BD
Avatar
Adobex
Ok mais le pb que je vois avec cette implémentation c'est qu'on a autant de
connexions que de Beans associés aux JSP. Le but serait d'avoir qu'une seule
connexion par session, peu importe le nombre de beans.

Si j'instancie un bean à partir d'une JSP en scope session, au moment de
cette instanciation je peux lui demander de faire appel à un autre bean pour
lui fournir une connexion. Donc, soit cette connexion est de type static,
auquel cas, je perds le bénéfice du pool, soit elle est dynamique et j'ai
donc une connexion par JSP. Je me trompe?

En fait, je vois à peu près la solution qui serait d'avoir un bean qui
fournisse une nouvelle connexion uniquement si celle-ci concerne une session
qu'il n'a pas encore eu à satisfaire. Cela suppose un certain mécanisme...
Je me pose donc la question de l'efficacité et de l'utilité de ce genre de
choses ou encore de la bonne façon de l'implémenter, c'est pourquoi
j'aimerais beaucoup connaître l'avis d'experts en la matière :)


"Yaltar" a écrit dans le message de
news:401ea170$0$3257$
oui, c'est ce que je dis schematiquement parlant on a


JSP => Bean associé à la JSP => Bean spécialisé dans l'acces au données

Donc dans ce cas la, la jsp ne touche pas aux accés BD




Avatar
Adobex
Bon, on dirait que plus personne n'a de suggestion, c'est dommage...

Alors les pros, ils sont où?? Heing?




"Adobex" a écrit dans le message de
news:401e70b7$0$18991$
Bonjour,

Mon problème est le suivant:

J'ai un site perso sur serveur Tomcat 4.1.29 accompagné de mysql.
Je souhaite utiliser le modèle MVC pour réaliser mes JSP.

Le but étant de faire une architecture propre et adaptée à l'envergure
(peu

importante pour l'instant) de mon site. Ca me sert également à tester les
différentes technos...

Comme je souhaite utiliser le MVC (donc éviter le code java dans les jsp)
et

me servir du pool de tomcat pour connecter mon appli à la bdd, j'aimerais
savoir quels sont les choix les plus judicieux pour organiser mes JSP,
Bean

et connexions.

J'ai plusieurs pages JSP et celles-ci ont des choses à faire avec la bdd.
Donc, est-il préférable de créer un bean par JSP (en scope session) ou un
seul bean pour toutes les JSP? Le site n'est pour le moment pas gros mais
cette idée me déplait dans le sens où on mélange toutes les actions au
sein

d'une même entité. Par contre, je n'ai du coup qu'une seule connexion à la
datasource (par session) et cela peut être économique en terme de
ressources.

Je pense donc qu'il y a plus judicieux de façon à éviter de tout mélanger
ou

d'avoir autant de connexions à la bdd que de beans.

Quels sont vos solutions ou références en la matière?

Merci d'avance.

Adobex




1 2