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 :

Creation de site web a base Servlet/JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut Creation de site web a base Servlet/JSP
    Hello !

    Je me lance dans la conception de site J2EE a base Servlet/JSP et j'ai une petite question concernant la structure du site.

    si j'ai bien suivi, un site J2EE basé sur le modele MVC (Servlet+JSP) ne pointe pas directement sur les jsp mais les adresses saisie dans l'url pointent toutes sur des url virtuelles associées a des sevlets, c'est bien ca ?

    Ensuite ca serait la servlet qui pointe via une methode vers la page jsp qui sert d'affichage ....

    J'ai encore un peu de mal a voir comment tout cela s'organise ....

    Sinon, quelle est la structure generale des applications J2EE : MVC ? JSF ? Servlet Unique ? Servlet par page ? il y a pleins de methodes .... :'(

    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Hello Clorish !

    A chaque problème une solution adaptée.

    Il existe différentes manière de faire, en fonction des projets. MVC1 ? MV2 (Struts) ? évenementiel (JSF) ?

    Dans le MVC1 le principe est le suivant :

    Lorsque l'utilisateur réalise une action, il appelle une URL de la forme :

    .../monContexte/actionListerUtilisateurs

    Dans le fichier web.xml, tu as fais le mapping qui dit que actionListerUtilisateurs est en réalité la servlet com.monappli.servlet.ActionListerUtilisateurs.

    Dans la servlet tu exécute l'action, et généralement tu renseignes un modèle (Bean) contenant les données à afficher dans la page suivante, genre en l'occurance une Collection<Utilisateur>, tu le mets dans le scope request et à la fin tu rediriges vers la JSP afficherUtilisateurs.jsp.

    A l'intérieur de la JSP tu peux parcourir ton modèle par exemple avec la bibliothèque JSTL (donc 0 ligne de code Java dans la JSP).

    Et ainsi de suite, un contrôleur par action.

    Dans le MVC2, il y a un seul contrôleur principal (donc 1 seule servlet à déclarer dans web.xml), et qui délègue l'action au vrai contrôleur. Le lien est généralement fait par dans un fichier de paramètre (struts-config.xml).

    Après tout dépend du besoin, dernièrement sur un projet nous avons utilisé du MVC2 (struts) mais où nous avions mis en place une couche service. Nos contrôleurs ne faisaient plus que d'invoquer la couche service (la servlet ne contenait qu'une ligne de code, l'appel au service).

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    ok .. merci pour cette réponse

    en fait je m'auto-forme en vue d'un futur poste mais vu que je ne sais pas ce qui sera utilisé je ne sais pas quoi chercher

    Pour le moment je me dirige plutôt vers une structure type MVC1.
    Par contre j'ai du mal a structurer le site.

    si j'ai bien compris, l'architecture complete du site est definie par des "chemins virtuels" associés a des servlets qui chargent des pages jsp en fonction de parametres saisis.

    du coup qu'en est il de la page d'acceuil ? garde t on une page html avec des liens vers les "adresses servlets" ?
    Qu'en est il des pages qui ne sont que de type "informatifs" sans gestion de bean interne .... ont elle aussi une servlet associée ?

    Quelques infos, ou encore mieux un endroit ou je peux trouver un exempel de site sur le modele MVC1 serait bien
    Je cherche depuis ce matin sans succes

    Merci d'avance

  4. #4
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    si j'ai bien suivi, un site J2EE basé sur le modele MVC (Servlet+JSP) ne pointe pas directement sur les jsp mais les adresses saisie dans l'url pointent toutes sur des url virtuelles associées a des sevlets, c'est bien ca ?
    C'est ca ^^ En fait, les pages se situent dans WEB-INF/pages (par exemple) et tu ne peux pas accéder directement au pages situé dans le repertoire WEB-INF, tu passe donc par des actions (les controleurs) qui te redirigent (via le mapping de tes actions) vers les bonnes jsp. je n'ai jamais fait de MVC2 mais ca reste le même principe comme l'a expliqué notre buveur de russe blanc local.

  5. #5
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    du coup qu'en est il de la page d'acceuil ? garde t on une page html avec des liens vers les "adresses servlets" ?
    Pour ma part je procede comme ceci (J'utilise struts 1.3.8): Je met mon index.jsp a la racine de webRoot et je la defini comme le welcome-file dans le web.xml. Dans cet index.jsp il n'y a que ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
    <logic:redirect action="/home.do"  />
    Ainsi, le index.jsp redirige automatiquement vers mon action home.

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    ok pour ce qui est des jsp.

    Je viens juste de lire que l'on peut aussi mapper le "index.jsp" directement sur le servlet principal. C'est peut etre uen solution ....

    sinon quel nom donnez vous aux url mappé ? juste un nom inspiré du nom de la servlet ? avec ou sans extentions ?

    sinon j'ai du mal a cerner a quoi sert on code source "index.jsp", notemment l'action

  7. #7
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Citation Envoyé par Clorish Voir le message
    sinon quel nom donnez vous aux url mappé ? juste un nom inspiré du nom de la servlet ? avec ou sans extentions ?
    Oui, un nom inspiré des servlets, sans extensions, en fait y a pas vraiment de regle tant que c'est clair pour toi ^^

    Par contre j'ai pas compris ton problème avec le index.jsp

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Citation Envoyé par Clorish Voir le message
    Qu'en est il des pages qui ne sont que de type "informatifs" sans gestion de bean interne .... ont elle aussi une servlet associée ?
    Soit tu associes une servlet qui ne fait que rediriger ves la JSP, soit tu appelles directement la JSP (du coup elle ne doit pas être dans WEB-INF pour être accessible).

    Par défaut dans le deuxième cas, tous les utilisteurs auront accès aux informations qu'elle contient.

    Citation Envoyé par JoloKossovar Voir le message
    notre buveur de russe blanc local.


    Citation Envoyé par JoloKossovar Voir le message
    Par contre j'ai pas compris ton problème avec le index.jsp
    Moi non plus .

    Je pense que maintenant tu peux passer à un peu de réal et que tu découvrirras par toi-même les possibilitées et les limites. Il n'y a pas de règles absolues pour le nommage, à chacun de trouver ses repères... (on est pas chez microsoft ).

  9. #9
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Pour l'index je viens en fait de comprendre .... tu utilise des "tags" qui ne font rien de plus qu'une redirection on ne peut plus basique sur la page "/home.do" .. comme on le ferait en html standard .... non ?

  10. #10
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par Duc Lebowski Voir le message
    Je pense que maintenant tu peux passer à un peu de réal et que tu découvrirras par toi-même les possibilitées et les limites.
    Ca c'est prevu

    Citation Envoyé par Duc Lebowski Voir le message
    Il n'y a pas de règles absolues pour le nommage, à chacun de trouver ses repères... (on est pas chez microsoft ).
    C'est ce qui fait la force de java .... et sa complexité
    j'aime bien java pour ca mais du coup on s'y pert un peu car les docs et tutos sotn tous differents et on sais jamais trop comment les prendre

  11. #11
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    exactement. Je te conseil de te tourner vers struts MVC 1 donc du(1.3.8 par exemple). Sinon y a spring qui contient un module MVC, mais je pense pas que ce soit le plus simple pour commencer le MVC (mais en fait j'en sais rien je n'ai jamais utiliser spring dans ce context). De plus, tu croiseras beaucoup plus de personne former sur struts que sur spring MVC.

  12. #12
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    merci pour ces infos
    je regarderais tout ca a tete reposée.

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    J'ai retrouvé un petit Hello World dans un coin, alors je te le met là au cas où pour le départ...

    Bon courage ! (Et bon week-end surtout )

    web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
    <!-- ditBonjour servlet -->
    <servlet>
        <servlet-name>ditBonjour</servlet-name>
        <servlet-class>com.monappli.controleur.DitBonjour</servlet-class>
    </servlet>
     
    <servlet-mapping>
        <servlet-name>ditBonjour</servlet-name>
        <url-pattern>/ditBonjour</url-pattern>
    </servlet-mapping>
    ...
    Le modèle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package com.monappli.modele;
     
    public class Utilisateur
    {
        private String _nom;
        private String _prenom;
        public void setNom(String nom) {_nom = nom;}
        public String getNom() {return _nom;}
        public void setPrenom(String prenom){_prenom = prenom;}
        public String getPrenom() {return _prenom;}
    }
    La servlet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    package com.monappli.controleur;
     
    public class DitBonjour extends HttpServlet
    {
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
            doGet(req, resp);
        }
     
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException
        {
    	String nom = request.getParameter("nom");
            String prenom = request.getParameter("prenom");
     
            // actions diverses
            System.out.println("<ditBonjour>:"+nom+":"+prenom);
     
            Utilisateur u = new Utilisateur();
            u.setNom(nom);
            u.setPrenom(prenom);
            req.setAttribute("utilisateur", utilisateur);
     
            req.getRequestDispatcher("/WEB-INF/jsp/bonjour.jsp").forward(req, resp);
        }
    }
    /index.html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    <form action="ditBonjour">
        Nom : <input type="text" name="nom"/><br/>
        Prenom : <input type="text" name="prenom"/><br/>
        <input type="submit" value="GO"/>
    </form>
    ...
    /WEB-INF/jsp/bonjour.jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    <strong>
    Bonjour
        <c:out value="${utilisateur.prenom}"/> 
        <c:out value="${utilisateur.nom}"/>
    </strong>
    ...

  14. #14
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    en fait .... c'est Nickel
    C'est en gros ca que je cherchais

    enfin .. ca reponds aux questions que je me posait a la lecture d'un peut tous les tutos

  15. #15
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Spring 2.5.x muni de ses annotations est réellement un bonheur pour faire du MVC2. Rien de plus simple que de définir un controlleur ou un service. Cf: http://wheelersoftware.com/articles/...notations.html

    Par contre pour la pédagogie, ca masque beaucoup de choses.

  16. #16
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Par contre pour la pédagogie, ca masque beaucoup de choses.
    Tout a fait d'accord avec toi
    C'est pour ça que j'ai débuté java avec notepad, JDK et petit script de compilation batch perso

  17. #17
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    euh notepad c un peu furieux quand meme ^^ tu pourrai prendre un editeur avec auto-complétion quand même, ça te simplifierai bien les choses (ultraEdit par exemple).

  18. #18
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    C'etait a l'epoque
    Sinon ya notepad++ qui est aussi bien ... et en plus gratuit

  19. #19
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Sinon ya eclipse qui est aussi bien ... et en plus gratuit

  20. #20
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Citation Envoyé par Clorish Voir le message
    C'etait a l'epoque
    Sinon ya notepad++ qui est aussi bien ... et en plus gratuit
    Désolé ... Je me fais vieux tu sais ... ^^

Discussions similaires

  1. Site web avec des servlet avec le protocloe Wap 2.0
    Par tmog111 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 29/10/2008, 15h31
  2. Réponses: 9
    Dernier message: 21/08/2008, 11h12
  3. creation de site web avec flash
    Par ralf91 dans le forum Flash
    Réponses: 4
    Dernier message: 20/09/2007, 14h17
  4. NVU creation dun site web
    Par Chestalain dans le forum Autres
    Réponses: 2
    Dernier message: 20/11/2006, 19h28
  5. [Conception] Site Web et base de données -> quel stratégie adoptez-vous
    Par snipes dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 30/04/2006, 01h51

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