OVH Cloud OVH Cloud

EJB / Servlet et JSP

2 réponses
Avatar
haderach
Bonjour,

Je suis en train de tester les EJB au travers d'une petite applique.

Une table de News qui repr=E9sente des articles de journaux, un servlet
qui r=E9cup=E8re tous les articles de la table, une page jsp qui affiche
la liste.

J'ai cr=E9=E9e un EJB CMP, NewsBean qui repr=E9sente la vue de la table
News et une m=E9thode findByLiNews qui retourne les articles dont le
libell=E9 correspond au param=E8tres. Cette m=E9thode retourne une
collection.

J'ai plusieurs questions :
- Qui appelle la m=E9thode findByLiNews? Le servlet ou la page Jsp.
- Si c'est la servlet, le r=E9sultat de la m=E9thode (collection) doit
=EAtre pass=E9 =E0 la JSP par setAttribute ou dois je cr=E9er un nouveau
Bean?

Merci pour vos eclaircissement.

2 réponses

Avatar
jlp
Appliquer le classique pattern MVC
Servlet => (C controleur )appelle un Bean façade ( qui lui invoque l'EJB )
=> aspect Métier/Methode
Servlet dispatche vers la page JSP de réponse ( View) qui utilise les
résultats du Bean Façade

pour cela il existe des Framework ( Struts, JSF ...)

"haderach" a écrit dans le message de
news:
Bonjour,

Je suis en train de tester les EJB au travers d'une petite applique.

Une table de News qui représente des articles de journaux, un servlet
qui récupère tous les articles de la table, une page jsp qui affiche
la liste.

J'ai créée un EJB CMP, NewsBean qui représente la vue de la table
News et une méthode findByLiNews qui retourne les articles dont le
libellé correspond au paramètres. Cette méthode retourne une
collection.

J'ai plusieurs questions :
- Qui appelle la méthode findByLiNews? Le servlet ou la page Jsp.
- Si c'est la servlet, le résultat de la méthode (collection) doit
être passé à la JSP par setAttribute ou dois je créer un nouveau
Bean?

Merci pour vos eclaircissement.
Avatar
TestMan
Bonjour,

Si c'est pour un test, je t'invites fortement à te pencher de préférence
sur EJB3 et le méchanisme d'entité, c'est beaucoup plus simple:

http://j2ee.netbeans.org/NetBeans_EJB3.html

Tu peux tester cette demo :
http://blogs.sun.com/roller/page/pavel?entry=java_ee_5_persistence_crud
(à noter que ici il aurait pû faire plus simple encore en laissant le
conteneur générer le schema SQL pour lui ... )

Pour répondre à ta question,
dans un patron type MVC, c'est bien le controleur qui va effectuéer
l'appel au modèle métier (ton "find"). Selon les framework que tu
utilise la façon de l'implementer peut différer...

Dans l'expemple précéédent, la vue (JSF) appele le controler (JSF
managed bean) qui exécute la requete directement. Mais dans un cas plus
général on préfèrera faire une couche de stateless qui sera appelé par
les managed beans (celà permet d'entierement séparer la présentation de
la logique métier et représenter le métier sous plusieur canaux par
exemple).

A+
TM


Bonjour,

Je suis en train de tester les EJB au travers d'une petite applique.

Une table de News qui représente des articles de journaux, un servlet
qui récupère tous les articles de la table, une page jsp qui affiche
la liste.

J'ai créée un EJB CMP, NewsBean qui représente la vue de la table
News et une méthode findByLiNews qui retourne les articles dont le
libellé correspond au paramètres. Cette méthode retourne une
collection.

J'ai plusieurs questions :
- Qui appelle la méthode findByLiNews? Le servlet ou la page Jsp.
- Si c'est la servlet, le résultat de la méthode (collection) doit
être passé à la JSP par setAttribute ou dois je créer un nouveau
Bean?

Merci pour vos eclaircissement.