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 :

récupération infos au chargement de la page : Java Bean ou Servlet ?


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Par défaut récupération infos au chargement de la page : Java Bean ou Servlet ?
    Bonjour,

    Je dois réaliser un site avec les technologies JSP/Servlet et je débute donc je rame un peu.

    J'ai crée des servlets qui se déclenchent après des submit de formulaire. Jusque là ca va.

    Je voudrais maintenant récupérer des informations en base de données pendant le chargement d'une page JSP, pour pouvoir les afficher dans celle ci.
    Comment dois je faire ?

    Si j'ai bien compris, une solution est apparemment de créer un java bean dans lequel j'effectuerai le traitement (la récupération en base), et d'utiliser <jsp:usebean /> & <jsp:getproperty/> pour récupérer le résultat.

    Pourriez vous confirmer si c'est la bonne démarche ?

    Sinon, il n'y a pas moyen d'appeler une servlet au chargement d'une page ? (je n'ai pas l'impression).

    Merci beaucoup de votre aide!

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bjr,
    Si tu dois respecter l'architecture J2EE, il faudra dans tous les cas passer par une servlet même pour alimenter les BEANS qui doivent servir d'affichage dans la JSP. c'est à ca que servent les servlets justement, à faire l'intermédiaire entre le coté métier ou bd et le coté client, JSP/HTML.
    Faut éviter la programmation consistant à attaquer une base de donnée dans une JSP.
    Donc ta question actuelle c'est savoir s'il faut passer ou non par des BEANS, car tu peux faire sans.

  3. #3
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Cela dépendra du type de données que tu veux afficher

    si c'est une simple liste contenue dans une arrayList, ou une simple valeur d'un champ récupéré après l'execution d'une requête pas besoin de bean

    par contre si tu veux afficher une liste d'objet avec plusieurs propriétées

    exemple des objets Personne avec les propriétées nom ,prénom adresse, téléphone.

    là il est intéressant d'utiliser les beans

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Par défaut
    Merci beaucoup de vos réponses ! Je dois en effet respecter l'architecture J2EE.

    En fait ,je dois développer un site de type réseau social.

    J'ai entre autres une classe Message qui peut représenter un mail privé (lisible depuis la boite de reception), ou bien un message
    public (lisible par tous sur le profil de l'utilisateur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Message {
     
    	private String content;
    	private User sender; 
    	private List<User> recipients;
    	private String content;
    	private String creationDate;
     	private boolean direct; // true si le message est privé  
     
    	etc.
    }
    J'ai en base une table "Messages" correspondant à cette classe, ainsi qu'une table MessageRecipients pour la jointure Message/User.
    (il y'a un mapping classes/tables grâce à des annotations hibernate)

    Quand l'utilisateur va sur sa boite de reception inbox.jsp, je voudrais afficher tous ses messages privés (les messages en base pour lequel il fait parti des destinataires et ayant le booléen direct à true).

    Si j'utilise une servlet sans java beans (il me semble que ce n'est pas la peine dans mon cas), est-ce que quelque chose comme ca est correct, ou je suis à coté de la plaque?

    Servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		
    		List<Message> msg = //récupération en base de données  
    
                    response.setContentType("text/html");
    	        PrintWriter out = response.getWriter();
    	        out.println("<TABLE>");
                    //Mise en forme de ma liste en mettant chaque message dans
                         dans une <TR> 
                    out.println("</TABLE>");
            	out.close();
    }
    inbox.jsp
    j'appelle simplement ma servlet comme ceci <%="NomServlet"%> pour inclure le code html dans ma jsp ?

    Merci encore, je bloque betement à cette étape !

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Si tu as des contrôles à faire sur les paramètres reçus, le mieux serait d'utiliser une servlet ET un bean.
    Tu serais dans une logique MVC, très au point et très classique...

    Ceci dit, tu peux également utiliser un bean directement dans la page pour déléguer l'extraction des données, ça n'a rien de choquant...
    Tu références le bean avec <jsp:useBean> (en utilisant "class" plutôt que "type").

    Une différence entre les 2 approches réside dans le fait que, normalement, dans le modèle MVC, on n'appelle pas une page jsp directement mais un contrôleur (servlet) qui lui dirigera vers la page.
    Si ta page n'a pas de formulaire (<form>), l'autre approche va très bien

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Par défaut
    En fait j'aimerais éviter de passer par un java bean tout seul.

    - Si je passe par une servlet seulement : est ce que ce que j'ai marqué ci dessus est correct ? dans le principe de renvoyer de l'html depuis la servlet, et d'appeler la servlet comme ceci : <%="NomServlet"%> dans la jsp?
    (pour construire le html je recupere la liste de message en base, pour chaque message j'affiche les x propriétés dans un tableau)

    -Si je passe par servlet + java bean : je suppose que dans la servlet je recupere en base la liste de message et la met dans une propriété de mon java bean, et dans ma JSP je recupere la propriété.
    Ma question est alors la suivante : comment déclencher la servlet ? (Je ne sais faire ca qu'avec un formulaire ...)
    je fais dans la JSP un <%="NomServlet"%> puis un <jsp:usebean> ... ?

    Merci

Discussions similaires

  1. Problème de chargement d'une page web Java
    Par poitou82 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/10/2010, 14h38
  2. Récupération infos page internet
    Par xEndLe dans le forum Flex
    Réponses: 1
    Dernier message: 13/11/2009, 17h15
  3. Récupération infos pages web
    Par zworg dans le forum Web & réseau
    Réponses: 1
    Dernier message: 06/03/2009, 08h45
  4. [ SWT ] Récupération info d'un Browse
    Par geegee dans le forum SWT/JFace
    Réponses: 11
    Dernier message: 08/06/2004, 16h23
  5. Attendre la fin du chargement de la page dans un WebBrowser
    Par core1 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 15/06/2003, 04h12

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