utilisation des session beans dans une jsp

utilisation des session beans dans une jsp - Java - Programmation

Marsh Posté le 23-04-2010 à 02:08:28    

Salut,
 
Je me test à la programmation d'application web en JEE. Pour le moment c'est un truc basique avec juste des Book à mettre en base de donnée.
Pour le moment j'ai l'Entity Bean Book et le Session Bean BookService mais je n'arrive pas à faire le lien avec une page jsp.
Je n'arrive pas à comprendre comment on fait le lien entre le bean de session et la page jsp afin de pouvoir avoir accès aux infos de la base de donnée.
est ce qu'il y a quelque chose de spécial à faire lors de l'écriture de la page jsp? ou est ce qu'il faut mieux se diriger vers la création de page jsf (truc encore plus complexe  :ouch: )?
 
Cordialement amis programmeur :D

Reply

Marsh Posté le 23-04-2010 à 02:08:28   

Reply

Marsh Posté le 23-04-2010 à 08:42:50    

Dans le cas simple tu as
Presentation <=> Controle <=> Metier <=> données
 
dans ton cas la présentation est effectuée par la vue, le metier par ton session bean, les données par ton SGBD. Le controle sera alors réalisé une servlet http.
 
 
donc tu obtiens
 
JSP <=> HttpServlet <=>Stateless Session Bean <=> SGBD
 
Tu présentes au clients ton formulaire à travers la JSP.
Le client rempli les info et clique sur submit.
Les info sont envoyé au controlleur qui se charge de remplir des objet tout simple avec les info reçues de la vue. Il fais ensuite appelle aux méthodes du session bean qui fais le traitement métier et renvoie le résultat au controlleur (la servlet) qui renvoie ensuite à la JSP.
 
Dans ta servlet tu dois donc avoir une référence sur ton session bean, tu l'obtiens soit en utilisant JNDI, soit en utilisant l'annotation @EJB ou en utilisant un conteneur qui permet de réaliser l'injection de dépendances (genre spring IOC)


Message édité par exhortae le 23-04-2010 à 08:43:39
Reply

Marsh Posté le 23-04-2010 à 08:45:26    

Pour l'injection
 

Code :
  1. import javax.ejb.Remote;
  2. @Remote
  3. public interface HelloWorld {
  4.     String getHello();
  5. }
  6. import javax.ejb.Stateless;
  7. @Stateless
  8. public class HelloWorldBean implements HelloWorld {
  9.     public String getHello() {
  10.         return "Hello World !";
  11.     }
  12. }
  13. import java.io.*;
  14. import javax.ejb.EJB;
  15. import javax.servlet.*;
  16. import javax.servlet.http.*;
  17. public class TestServlet extends HttpServlet {
  18.     @EJB
  19.     private HelloWorld helloWorld;
  20.      ....
  21.       }
  22. }


Message édité par exhortae le 23-04-2010 à 08:47:01
Reply

Marsh Posté le 23-04-2010 à 14:49:01    

ouais dans ce sens ça marche bien.
maintenant si je veux avoir une tableau avec mes infos dedans? je lance une servlet qui va aller chercher toutes les infos et tous renvoyer vers la jsp ou est ce qu'il y a moyen de faire plus simple?

Reply

Marsh Posté le 23-04-2010 à 15:11:03    

Tu crées un bean avec toutes les info que tu dois afficher, tu le remplis dans le controlleur avec les info issues du métier, tu le mets dans la requete ou la session et tu forwards vers la jsp, y'a pas plus simple.

Reply

Marsh Posté le 23-04-2010 à 16:11:02    

sauf qu'il faut qu'une servlet se lance quand j'affiche ma page. et en utilisant les tag?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed