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 :

Générer un tableau avec données SQL à partir d'une Servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Par défaut Générer un tableau avec données SQL à partir d'une Servlet
    Bonjour,

    Je suis actuellement sur un projet de développement d'une application de supervision pour une entreprise, en Java EE (Web Application) à) l'aide de l'IDE Netbeans 6.9 + GlassFish 3. Je suis étudiant, et je suis débutant dans le domaine du Java.

    Pour le moment, j'ai une BDD MySQL hébergée sur une dédibox, et je m'y connecte depuis les services intégré à Netbeans. J'ai crée une servlet qui servira uniquement crée une session pour la connexion/déconnexion à la base MySQL Ce que j'aimerais pouvoir faire désormais, c'est de récupérer les resulset de ma Servlet et de les intégrer dans un tableau dans ma JSP.

    Voici le code source actuel de ma 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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    package traitement;
     
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class NewServlet extends HttpServlet
    {
      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, ClassNotFoundException, SQLException
      {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try
        {
          out.println("<html>");
          out.println("<head>");
          out.println("<title>Servlet Acceuil</title>");
          out.println("</head>");
          out.println("<body>");
          out.println("<h1>Servlet at" + request.getContextPath() + "</h1>");
          out.println("1 -");
     
          try {
            Class.forName("com.mysql.jdbc.Driver");
            out.println("Driver : OK ! <bR>");
          } catch (ClassNotFoundException e) {
            out.println("Driver : KO ! " + e.getMessage() + " => " + e.getCause() + "<bR>");
          }
     
          String url = "jdbc:mysql://xx.xx.xx.xx:3306/mabase";
          String user = "***";
          String passwd = "***";
          Connection connexion = DriverManager.getConnection(url, user, passwd);
          out.println("Connection à la base : OK !" + "<br>");
     
          Statement stmt = connexion.createStatement();
          ResultSet Rs = stmt.executeQuery("Select * from CVA");
          while (Rs.next()) {
            out.println("<BR>" + Rs.getString("ID_CVA") + " " + Rs.getString("LIBELLE"));
          }
          Rs.close();
          stmt.close();
     
          out.println("</body>");
          out.println("</html>");
        }
        finally {
          out.close();
        }
      }
    Et voici le code actuel de ma JSP :
    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
    46
    47
    48
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
         <body>
         <html>
          <h1>- Test d'une JSP pour C.D.E -</h1>
          <FORM>
            <SELECT name="asc1" size="1">
            <OPTION selected>Lundi
              <%
              int i=0;
              for(i=0;i<6;i++)
              out.println("<OPTION>" +i);
              %>
            </OPTION>
            </SELECT>
          </FORM>
            <br>
          <FORM>
            <SELECT name="asc2" size="1">
            <OPTION selected>Mardi
              <%
              int j=0;
              for(j=0;j<6;j++)
              out.println("<OPTION>" +j);
              %>
            </OPTION>
            </SELECT>
          </FORM>
            <br>
            <table width="100%" border="1" cellspacing="5" cellpadding="1" >
                <tr>
                 <td>
                   <div align="center">cell1</div> </td>
                 <td>
                   <div align="center">cell2</div> </td>
                 <td>
                   <div align="center">cell3</div> </td>
                 <td>
                   <div align="center">cell4</div> </td>
                </tr>
            </table>
    </body>
    </html>
    Est-ce qu'il faut que je fasse appel à une classe Java de ma Servlet dans la JSP ?

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Bonjour

    dans ta servlet tu peux construire une liste d'objet qui sont issus des résultats de ta requête SQL
    puis tu mets dans la request HTTP ta liste d'objet
    dans ta jsp tu récupères cette liste avec request.getParameter("maList")

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Par défaut
    Bonjour Isma4,

    Est-ce qu'il faut que je fasse quelque chose comme ça dans ma JSP pour pouvoir afficher mes données (provenant de ma Servlet) dans un tableau ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%
    ArrayList<String> NewArrayList = (ArrayList) request.getParameter("maListe");
    %>
    Et est-ce que le code de la Servlet doit ressembler à ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		try {
    			request.setAttribute("maListe");
    			getServletContext().getRequestDispatcher("/Index.jsp").forward(request, response);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    Merci d'avance

  4. #4
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Dans ta servlet tu dois d'abord récupérer/construire ta liste en faisant appel à une classe qui te renvois les informations de ta base de données

    et enfin
    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<?> maListe = new ArrayList<?>(); //tu peux mettre une autre impléntation de l'interface List; et l'objet qui a bien 		
    try {
     
    maListe =XXXX ;////ici tu récupères ta liste	
    request.setAttribute("maListe",maListe);
    			getServletContext().getRequestDispatcher("/Index.jsp").forward(request, response);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Par défaut
    Est-ce que ça conviendrais de cette façon ?
    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 {
            ArrayList<Object> maListe = new ArrayList<Object>();
            try {
                maListe = maListe ;
                request.setAttribute("maListe",maListe);
                getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
                processRequest(request, response);
            } catch (SQLException ex) {
                Logger.getLogger(RequeteSQL.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    J'ai un petit doute sur les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maListe = maListe ;
                request.setAttribute("maListe",maListe);
    Je suis d'accord que le premier élément est le nom de l'attribut, par contre pour le deuxième élément je n'ai pas su quoi mettre comme valeur. Le paramètre maListe convient-il ?

    Concernant l'appel de l'ArrayList dans ma JSP, j'ai aussi quelques doutes lorsque je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <%@page import="java.util.ArrayList"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <%
    ArrayList<Object> maListe = (ArrayList) request.getParameter("maListe");
    %>
    Toute la ligne ArrayList<Object>... est soulignée en rouge et Netbeans me signal qu'il y'a une erreur de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Inconvertible type. Required:java.util.ArrayList. Found:java.lang.String
    Pourtant dans les en-têtes de la JSP j'ai bien <%@page import="java.util.ArrayList"%>, donc je ne comprend pas trop....

  6. #6
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Citation Envoyé par Soolfly Voir le message
    Est-ce que ça conviendrais de cette façon ?
    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 {
            ArrayList<Object> maListe = new ArrayList<Object>();
            try {
                maListe = maListe ;
                request.setAttribute("maListe",maListe);
                getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
                processRequest(request, response);
            } catch (SQLException ex) {
                Logger.getLogger(RequeteSQL.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    c'est normal,il fallait changer les XXX par un appel à une classe qui te récupères les informations de la base de données

    ce qui suit ne sert à rien :-)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      maListe = maListe ;

    ensuite met plus tôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<Object> maListe = new ArrayList<Object>();

    que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList<Object> maListe = new ArrayList<Object>();
    comme ça tu auras l'implémentation de ton choix. mais ça c'est une autre histoire

    Commence par écrire la classe qui va te récupérer les informations que tu veux dans ta base de données
    Après on verra.

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/03/2014, 03h34
  2. [MySQL] Menu déroulant avec données sql
    Par matt38 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/08/2012, 23h40
  3. [SQL] Limiter taille tableau html construit avec données sql
    Par syl2042 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/09/2007, 15h23
  4. [VBA Excel] Tableau avec données du userform et de formules
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2006, 13h29
  5. [MySQL] Problème affichage tableau PHP avec données SQL
    Par akalaan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 14h34

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