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 :

MVC - Communication entre les pages JSP passant par une Servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Points : 161
    Points
    161
    Par défaut MVC - Communication entre les pages JSP passant par une Servlet
    Je suis débutant et je fais un TP simple selon MVC appélé ProjetTest, qui consiste a affcher première une page d'accueil avec 4 liens :

    CLASSES
    ETUDIANTS
    ENSEIGNANTS
    INSCRIPTIONS

    Lorsque l'utilisateur clique sur l'un des liens, il lui ouvre le formulaire correspondant et dans chacun de ces formulaires, se trouve le lien Retour au Menu Principal
    Ce que j'ai fait marche normalement mais j'ai un soucis d'optimisation.
    Dans chacun de ces liens de ma page index.jsp qui contient ce Menu Principal, je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <td><a href="/ProjetTest/ServletControl?id=classes">CLASSES</a> </td>
    <td><a href="/ProjetTest/ServletControl?id=etudiant"> ETUDIANTS</a></td>
    <td><a href="/ProjetTest/ServletControl?id=inscriptions"> INSCRIPTIONS</a></td>
    <td><a href="/ProjetTest/ServletControl?id=enseignants"> ENSEIGNANTS</a></td>
    Et dans le doGet de ma Servlet, j'ai les 5 IF suivants :
    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
    if(id.equals("classes")){
    	RequestDispatcher disp = request.getRequestDispatcher("/WEB-INF/vues/classes.jsp");
    	disp.forward(request, response);
    }
    if(id.equals("etudiant")){
                 RequestDispatcher disp = request.getRequestDispatcher("/WEB-INF/vues/etudiant.jsp");
    	disp.forward(request, response);
    }
    if(id.equals("inscriptions")){
    	RequestDispatcher disp = request.getRequestDispatcher("/WEB-INF/vues/inscription.jsp");
    	disp.forward(request, response);
    }
    if(id.equals("enseignants")){
    	RequestDispatcher disp = request.getRequestDispatcher("/WEB-INF/vues/enseignant.jsp");
    	disp.forward(request, response);
    }
    if(id.equals("retourMenu")){
    	RequestDispatcher disp = request.getRequestDispatcher("index.jsp");
    	disp.forward(request, response);
    }
    ça marche sans problème, mais ma question est la suivante :

    Est-ce à dire que si j'ai 20 formulaires avec peut-être 50 liens dans mon application, j'aurais à faire 50 IF ? N'est-ce pas lourd ? N'y-a-t-il pas un autre moyen plus léger ?

    Merci

  2. #2
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il y a la possibilité de passer par une map, du coup, ton code ressemblerait à ceci
    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
    27
    28
     
    public class MaServlet extends HttpServlet
    {
        private static final long serialVersionUID = 1;
        private Map<String, String> map;
     
        @Override
        public void init(ServletConfig config) throws ServletException
        {
            super.init(config);
            map = new HashMap<String, String>();
            map.put("classes", "/WEB-INF/vues/classes.jsp");
            map.put("etudiant", "/WEB-INF/vues/etudiant.jsp");
            map.put("inscriptions", "/WEB-INF/vues/inscription.jsp");
            map.put("enseignants", "/WEB-INF/vues/enseignant.jsp");
        }
     
     
        @Override
        public void service(HttpServletRequest request, HttpServletResponse response) throws IOException
        {
            String id = request.getParameter("id");
            String page = map.get(id);
            ...
            request.getRequestDispatcher(page).forward(request, response);
     
        }
    }

  3. #3
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Points : 161
    Points
    161
    Par défaut
    Merci bcp, ça marche et je préfère cette méthode et là je

Discussions similaires

  1. appel d'une page JSP a partir une servlet
    Par sniper_marra dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/09/2008, 00h45
  2. Réponses: 5
    Dernier message: 09/07/2008, 11h26
  3. Réponses: 7
    Dernier message: 26/03/2008, 17h20
  4. [javaBean + JSP] comment partager un objet entre les page JSP
    Par subzero82 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/05/2006, 18h48
  5. [JSP] [Servlet] Exit d'une page JSP ou d'une servlet
    Par boutss dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 27/02/2006, 07h50

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