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 :

recuperation d'attributs dans une servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de clio671
    Profil pro
    Développeur Web
    Inscrit en
    Février 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2007
    Messages : 203
    Par défaut recuperation d'attributs dans une servlet
    Bonsoir,

    En ce moment je développe une application qui doit à partir d'un catalogue développé en jsp (on prend les données à partir de bean) récupérer la valeur d'un attribut d'un bean pour ensuite mettre l'instance qu'on a choisi dans un panier de commande pour un client : le tout géré par une 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Catalogue filtré</title>
    
    </head>
    <body>
    <h1>Le catalogue de l'association</h1>
    
    <%
    // On récupère la liste
    java.util.LinkedList listeArticle = (java.util.LinkedList)application.getAttribute("listeArticles");
    
    %>
    <table border="1">
    <tr>
    <td>Code</td>
    <td>Nom</td>
    <td>Prix</td>
    <td>Stock</td>
    </tr>
    <% for(int i=0;i<listeArticle.size();i++) { 
    bean.Article article = (bean.Article)listeArticle.get(i);
    %>
    <tr>
    <td><% out.println(article.getCode()); %></td>
    <td><% out.println(article.getNom()); %></td>
    <td><% out.println(article.getPrix()); %></td>
    <td><% out.println(article.getStock()); %></td>
    <% out.println(article.getCode()); %>
    <td><input type="submit" value="Commander" name="valid"/></td>
    </tr>
    <%} %>
    </table> 
    <br>
    
    </body>
    </html>
    Mais le problème est que je ne sais pas comment récupérer toute l'instance de la classe.Comment cela se traduit-il dans la jsp? dans la servlet?

    le code de ma servlet
    CommandeServlet :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    package servlet;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import bean.Adherent;
     
    /**
     * Servlet implementation class for Servlet: AdherentServlet
     * 
     */
    public class AdherentServlet extends javax.servlet.http.HttpServlet implements
    	javax.servlet.Servlet {
     
        private static final long serialVersionUID = 5912000092807394750L;
     
        public AdherentServlet() {
    	super();
        }
     
        protected void doGet(HttpServletRequest request,
    	    HttpServletResponse response) throws ServletException, IOException {
    	process(request, response);
        }
     
        protected void doPost(HttpServletRequest request,
    	    HttpServletResponse response) throws ServletException, IOException {
    	process(request, response);
        }
     
        protected void process(HttpServletRequest request,
    	    HttpServletResponse response) throws ServletException, IOException {
    	if (request.getSession().getAttribute("instanceAdh") == null) {
    	    request.getSession().setAttribute("instanceAdh",
    		    new Adherent((String) request.getSession().getAttribute("user")));
    	}
    	getServletContext().getRequestDispatcher("/jsp/Adherent.jsp").forward(
    		    request, response);
        }
    }
    Je voudrais quelques indications si possible sur la façon de procéder.

    Merci d'avance
    a+

  2. #2
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    Citation Envoyé par clio671 Voir le message
    Mais le problème est que je ne sais pas comment récupérer toute l'instance de la classe.Comment cela se traduit-il dans la jsp? dans la servlet?
    Que veux-tu dire par toute l'instance? La méthode getAttribute te permet de récupérer l'instance comme fait dans ta jsp.

    A noter qu'il serait plus propre de passer du EL dans tes jsp afin d'y limiter le code java.

  3. #3
    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
    Bonjour,

    Si je comprends bien tu veux récupérer l'Article sélectionné par l'utilisateur.

    Tu ne peux pas passer directement un objet java dans la requête HTTP, ce qu'il faut que tu fasses c'est passer les informations qui te permette de retrouver ton objet java (Article) côté serveur dans la servlet.

    Ici je considère que l'attribute Code est une clé unique de Article.

    JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="/webapp/maServlet?article_code=<%=article.getCode()%>">Commander</a>
    Servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void process(HttpServletRequest request,
    	    HttpServletResponse response) throws ServletException, IOException
    {
        List listeArticle = (List)getServletContext().getAttribute("listeArticles");
        Article articleSelectionne = null;
        for(Article article : listeArticle) {
            if (article.getCode().equals(request.getParameter("article_code")) {
                articleSeletionne = article;
                break;
            }
        }
        ...
    }
    Enfin dans ce cas il aurait été préférable de créer une Map<String, Article> avec en clé le code de l'article et en valeur l'objet article...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 29
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // On récupère la liste
    java.util.LinkedList listeArticle = (java.util.LinkedList)application.getAttribute("listeArticles");
    Le problème est que tu mets ton objet dans la session dans la servlet, et tu essaies de récupérer cet objet dans le scope application.
    Tu dois récupéré ton objet dans la session avec session.getAttribute("listeArticles");.

    /Muzo

  5. #5
    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 Muzo@ Voir le message
    Le problème est que tu mets ton objet dans la session dans la servlet.
    Muzo, t'as vu ça où qu'il met "listeArticles" en session dans la servlet ?

    Faudrait lire un peu avant de donner des réponses au piff !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 29
    Par défaut
    Bonjour,

    j'ai mal lu le code de la servlet. Pas réveillé hier.

    Désolé

    /Muzo

Discussions similaires

  1. Récupérer Attributs d'une Servlet dans une JSP
    Par driver1989 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/02/2012, 18h34
  2. recuperation d'un flux xml dans une servlet et le parser
    Par benfarhat dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/06/2009, 15h34
  3. récupérer et modifier l'attribut TARGET dans une servlet
    Par ITIFET1 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 21/03/2008, 09h55
  4. attribut dans une servlet
    Par pigpen dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 02/06/2007, 21h37
  5. [C#] Recuperation de valeur dans une autre page
    Par kenzo080 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2004, 10h32

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