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 :

[JSP][Servlet][Tomcat][JDBC]Gestion d'une base de donnée. [Débutant(e)]


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut [JSP][Servlet][Tomcat][JDBC]Gestion d'une base de donnée.
    Salut,

    bon, je ne sais pas si le titre du post est correct, mais c'est pas grave.


    Voilà, je suis plutôt novice en J2EE, mais j'adore le java, donc je cherche à m'améliorer.

    J'essaye de faire une sorte de forum mais basée sur l'envois d'image (ou autre tel que des animations flash), au final çà ressemblerais à une gallerie disposée comme un forum et ou tout le monde peut poster des images.

    Le problème c'est que je vois pas très bien comment optimiser la gestion de la base de donnée : j'ai pour le moment une servlet qui doit récupérer les infos de la base pour afficher le tout à l'aide d'une jsp.

    Et j'ai une autre servlet pour la gestion de l'upload d'une image afin de l'insérer dans la base.

    Donc au final, comment faire en sorte qu'il n'y ai pas trop de connexions inutile à ma base ?


    Autre problèlme (j'en profite), je ne connais pas énormément tous les outils qui existent pour gérer au mieux l'affichage, et donc je fait (en tout cas j'essaye) de faire du MVC, avec les servlets qui délèguent aux jsp l'affichage final de la page.

    Et donc mon problème : je sais très bien comment envoyer à travers un javabean un String, et l'afficher (jsp:getProperty....) mais pour envoyer les différentes 'posts' je met tout dans un vecteur (nom de l'image, quand, ....) comment je peut faire pour que côté jsp je récupère çà comme un vecteur ? (getProperty doit utiliser .toString et m'affiche le contenu du vecteur, mais je veux pouvoir faire un traitement pour chaque éléments du vecteur).

    Mon approche est-elle bonne ? que faut-il changer ? comment bien gérer un outil de cache ?


    Merci pour tout.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu pourrais par exemple utiliser la JSTL et plus exactement le tag <c:forEach> qui permet d'itérer sur une collection.
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Merci, je pensais bien avoir vu quelque chose comme, je vais donc utiliser la JSTL.


    Quelqu'un as-t-il une idée pour le reste ?


    Merci.

  4. #4
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Je suis vraiment trop nul : j'arrive pas à bien comprendre comment faire fonctionner le tout :

    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
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    <%@ page import="java.util.Vector" %>
    <html>
        <head>
            <title>titre</title>
        </head>
        <body>
            <h1>....</h1><br>
            <jsp:getProperty name="fileList" property="fileName"/>
            <jsp:getProperty name="fileList" property="realFileName"/>
            <jsp:getProperty name="fileList" property="plop"/>
     
            <c:forEach items="${fileList.plop}" var="item" >
                ${item.value}
            </c:forEach>
     
            <FORM ENCTYPE="multipart/form-data" ACTION="upload" METHOD="POST">
            Envoyez ce fichier : <INPUT NAME="fichier" TYPE="file">
            <INPUT TYPE="submit" VALUE="Go">
            </FORM>
        </body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:getProperty name="fileList" property="plop"/>
    m'affiche le toString() de mon vecteur 'plop'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            <c:forEach items="${fileList.plop}" var="item" >
                ${item.value}
            </c:forEach>
    m'affiche
    ${item.value}
    comment faut-il procéder ???


    merci

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Que contient ton vector plop ? c'est un vector de beans ou un vector de String ?
    Modératrice Java - Struts, Servlets/JSP, ...

  6. #6
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    voici le code de mon bean :

    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
    43
    44
    45
    package Beans;
     
    import java.util.Vector;
     
    public class JBeansPage extends java.beans.Beans
    {
        protected String fileName, realFileName;
        protected Vector plop;
     
        public Vector getPlop()
        {
            return plop;
        }
     
        public void setPlop(String plop)
        {
            this.plop.add(plop);
        }
     
        public JBeansPage()
        {
            plop = new Vector();
            fileName = new String("default");
        }
     
        public String getFileName()
        {
            return fileName;
        }
     
        public void setFileName(String fileName)
        {
            this.fileName = fileName;
        }
     
        public String getRealFileName()
        {
            return realFileName;
        }
     
        public void setRealFileName(String realFileName)
        {
            this.realFileName = realFileName;
        }
    }

    et voici comment je l'utilise : (dans ma servlet, méthode doGet):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    JBeansPage jbPage = new JBeansPage();
     
                jbPage.setFileName("plop2");
                jbPage.setRealFileName("realPlopd");
                jbPage.setPlop("test");
                jbPage.setPlop("t1");
                jbPage.setPlop("t2");
                jbPage.setPlop("t3");
     
                request.setAttribute("fileList", jbPage);
     
                RequestDispatcher rDispatch = getServletContext().getRequestDispatcher("/imageboard.jsp");
                rDispatch.forward(request, response);

    Es-ce que mon approche globale est bonne ?

  7. #7
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Que contient ton vector plop ? c'est un vector de beans ou un vector de String ?
    c'est donc un vecteur de string, comment faut-il utiliser c:forEach dessus ?

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    fileList étant le nom sous lequel tu as stocké ton Vector dans le scope request et ton Vector étant une collection de String, essaie en codant tout simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <c:forEach items="${fileList}" var="item">
          <c:out value="${item}"/>
    </c:forEach>
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Par contre, si tu voulais accèder à ton bean JBeansPage dans ta jsp, il faudrait faire ceci :

    dans ta servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("jbPage",jbPage);
    dans ta jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Filename : <c:out value="${jbPage.fileName}"/>
     
    RealFileName : <c:out value="${jbPage.realFileName}/>
     
    <c:forEach items="${jbPage.plop}" var="item">
          <c:out value="${item}"/>
    </c:forEach>
    Modératrice Java - Struts, Servlets/JSP, ...

  10. #10
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Bon déjà, merci de m'aider, c'est important pour moi.

    Après je comprend pas tu me donnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("jbPage",jbPage);
    à mettre dans ma servlet mais je le faisais déjà mais sous le nom de 'fileList'.

    Et puis quelque soit la méthode que je met dans la jsp, j'ai çà comme résultat :

    Filename : ${jbPage.fileName} RealFileName : ${jbPage.realFileName} ${item}
    Donc çà marche pas mieux qu'au début, mais je sens qu'on avance.

    Où es-ce que çà coince ?

  11. #11
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Manifestement, les EL ne sont pas interpretées.

    Quelle version de J2EE utilises-tu ?

    Jette un oeil ici pour voir les conditions d'utilisation.

    Sinon, pour le bean dans le scope request, tu as raison, j'avais mal lu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("fileList", jbPage);
    Ce qui m'a trompé, c'est que tu appelles fileList ton bean.
    J'ai pensé que c'était le vecteur.

    Donc, la solution en mettant ton bean dans le scope sous le nom fileList serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Filename : <c:out value="${fileList.fileName}"/>
     
    RealFileName : <c:out value="${fileList.realFileName}/>
     
    <c:forEach items="${fileList.plop}" var="item">
          <c:out value="${item}"/>
    </c:forEach>
    Mais il faut d'abord régler le problème de l'interprétation des EL.
    Modératrice Java - Struts, Servlets/JSP, ...

  12. #12
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Alors, j'utilise tomcat 5.0.28, jdk 1.4.2_10

    Ce qui est étrange c'est que fonctionne bien.

    J'ai installé la JSTL apache, contenu du répertoire lib :

    commons-fileupload-1.1.jar commons-io-1.2.jar jstl.jar mysql-connector-java-5.0.0-beta-bin.jar standard.jar
    et j'ai recopié les tld dans le rep WEB-INF/tld (je sais pas si il le fallait)

    c-1_0-rt.tld c.tld fmt-1_0.tld fn.tld scriptfree.tld sql-1_0.tld x-1_0-rt.tld x.tld
    c-1_0.tld fmt-1_0-rt.tld fmt.tld permittedTaglibs.tld sql-1_0-rt.tld sql.tld x-1_0.tld
    voilà.

  13. #13
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par BakaOnigiri
    Ce qui est étrange c'est que fonctionne bien.
    ça prouve bien que la JSTL fonctionne bien mais que, par contre, les EL ne sont pas interprétées.

    Essaie en changeant l'uri de la directive taglib dans ta jsp :

    à la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    mets ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
    et modifie le web.xml en conséquence.
    Modératrice Java - Struts, Servlets/JSP, ...

  14. #14
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Hum, çà change pas grand chose (en fait rien du tout même) mais je viens de regarder les logs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    18:08:28,190 ERROR ParserUtils:198 - Invalid PUBLIC ID: -//Sun Microsystems, Inc.//DTD Web Applications 2.3//EN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resolve entity failed-//Sun Microsystems, Inc.//DTD Web Applications 2.3//EN http://java.sun.com/dtd/web-app_2_3.dtd
    Je pense que ce n'es pas normal, d'où çà peut venir ?

  15. #15
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Fais voir les premières lignes de ton web.xml.
    Modératrice Java - Struts, Servlets/JSP, ...

  16. #16
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Applications 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">

  17. #17
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    As-tu toujours un message d'errreur avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "dtd/web-app_2_3.dtd">
    
    Modératrice Java - Struts, Servlets/JSP, ...

  18. #18
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    non, mais çà ne résoud pas mon problème

    Merci en tout cas pour cette erreur corrigée.

  19. #19
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Peut-être que tu n'as pas la bonne version des jars.

    Faudrait qu'adiGuba jette un oeil à ce post, je suis certaine qu'il trouverait d'où vient le problème.
    Modératrice Java - Struts, Servlets/JSP, ...

  20. #20
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Ok, j'attend avec impatience.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Gestion d'une base de données Access en C++
    Par Mastero dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 01/10/2008, 11h23
  2. gestion d'une base des données
    Par bkhbkh dans le forum JDBC
    Réponses: 1
    Dernier message: 16/06/2007, 19h05
  3. Gestion d'une base de données d'offre de prix
    Par sofianoo dans le forum Delphi
    Réponses: 21
    Dernier message: 24/03/2007, 08h11
  4. [JDBC] Connexion a une base de données Access
    Par sg-40 dans le forum JDBC
    Réponses: 4
    Dernier message: 05/11/2005, 15h25
  5. [JDBC]Creation d'une base de données
    Par julien21 dans le forum JDBC
    Réponses: 2
    Dernier message: 08/01/2005, 22h11

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