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 :

Recuperer resulset dans page jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Recuperer resulset dans page jsp
    bonjour tout le monde
    j"essaye de faire separation du partie traitement servlet au partie jsp présentation a travers récupération résultat d'une requete selection qui se trouve au page servlet mais ca marche pas voici le code du page servlet et page jsp
    page 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
    import java.io.*;
    import java.net.*;
    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
     
    /**
     *
     * @author Administrateur
     * @version
     */
    public class liste23 extends HttpServlet {
     
        public Connection con;
      private PrintWriter out;
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
     
     
     
        }
     
     
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
     
     
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            try
          {
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            String url="jdbc:odbc:test5";
           con=DriverManager.getConnection(url,"","");
            Statement stmt = con.createStatement();
          ResultSet rs = stmt.executeQuery("SELECT * FROM etud"); 
    	HttpSession session = request.getSession(true);
            session.setAttribute("resultset", rs);	
             response.sendRedirect("liste2.jsp");}
        catch(Exception e)
          {
          System.out.println(e);
          }
     
        }
     
     
        public String getServletInfo() {
            return "Short description";
        }
        // </editor-fold>
    }
    et page 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
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@ page import="java.util.*" %>
    <%@ page import="java.text.*" %>
    <%@ page import="java.sql.*" %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
     
        <h1>JSP Page</h1>
        <form>
            <form >
     
    <table border="1">
     
            <body>
                <tr>
     
                    <td>Nom</td>
                    <td>Prenom</td>
                </tr>
               <% session.getAttribute("resultset");
               ResultSet rs = (ResultSet) request.getAttribute("resultset"); %>
     
     
    <%  while(rs.next()){%>
             <tr>
     
                  <td align="center"><%=rs.getString(2)%></td>
                    <td align="center"><%=rs.getString(3)%></td>
     
                   </tr>
              <% } %>
        </table>
     
        </form>
     
        </body>
    </html>
    et lorsque j'execute page servlet il s'affiche page blanche

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Le problème est que tu fais un redirect: le serveur envoie au client un message disant la page que tu cherche se trouve à cette adresse, le client envoie alors une deuxième requête. A ce moment le resultset n'est plus accessible.

    Il faut que tu fasse un forward (le serveur renvoie le traitement à une autre servlet/jsp):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getServletConfig().getServletContext().getRequestDispatcher("liste2.jsp").forward(request,response);
    Par contre tu vas avoir un problème parce que tu ne ferme pas ta connexion ni ton resultset

  3. #3
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Points : 368
    Points
    368
    Par défaut
    Le code est abominable.

    Si c'est une requête get, je ne sais pas ce que fait ton application

    Dans le cas d'une requête post, tu mets ton résultat en session. Par contre dans ta page tu essaies de le récupérer depuis la requête...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <% session.getAttribute("resultset");
    ResultSet rs = (ResultSet) request.getAttribute("resultset"); %>
    Si ta page est blanche, c'est que tu fais une requête get. Il y a d'autres choses qui pourrait expliquer ce résultat.

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    merci darkxan et the-gtm pour votre réponse mais toujours ca marche pas

    darkxan :
    si j'ai compris tu m'as dis de faire ce code
    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
     protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            try
          {
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            String url="jdbc:odbc:test5";
           con=DriverManager.getConnection(url,"","");
            Statement stmt = con.createStatement();
           ResultSet rs = stmt.executeQuery("SELECT * FROM etud"); 
     
            HttpSession session = request.getSession(true);
            session.setAttribute("resultset", rs);	
             getServletConfig().getServletContext().getRequestDispatcher("liste2         .jsp").forward(request,response);
     
           con.close();}
            catch(Exception e)
          {
          System.out.println(e);
          }
        out.close();
        }
    toujours il ya page blanche
    the-gtm
    fais une requête get ou poste j'ai pas compris
    c'est pas une formulaire de saisie qui fait action sur page servlet ,c'est afficher resultat d'une requete select (servlet) dans une tableau jsp

    Dans le cas d'une requête post, tu mets ton résultat en session. Par contre dans ta page tu essaies de le récupérer depuis la requête...
    comment faire? merci d'avance

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    déjà il faut effectuer ton code dans doGet, pas doPost. En gros GET correspond à l'affichage d'une page (tu cliques sur un lien), et POST correspond au traitement d'une requête sur un formulaire (tu cliques sur un bouton).

    Ensuite ce que dit darkxan est que tu mets le resultset dans la session et qu'ensuite tu va le chercher dans la requête (2 endroits différents donc). La session c'est un objet qui suit le client de requête en requête alors que la requête est juste pour une page.

    Au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("resultset", rs);
    Il faudrait que tu fasse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("resultset", rs);
    Sinon je te conseille de lire les bases du HTTP et des servlets avant de commencer à coder.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    ouuuuuuuuuuuuuuueeeee
    merci the-gtm pour votre aide oui effectivment il faut que je fait resultat de resultser dans objet request
    voici le code dans page servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    request.setAttribute("resultset", rs);
     getServletConfig().getServletContext().getRequestDispatcher("liste.jsp").forward(request,response);
    et le code dans page jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet rs=(ResultSet)request.getAttribute("resultset") ;
    et bien sur merci a darkxan

    SVP the-gtm est ce que vous avez un code métier qui permet de faire dans une classe java par exemple les fonctions d'ouverture de connexion ,de faire requete mis a jour et suppression.. pour minimiser un petit peu le code merci d'avanc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. importer une class java dans page jsp
    Par Nemesys dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 29/03/2007, 22h37
  2. swing jtree et tabpane dans page jsp
    Par david06600 dans le forum Struts 1
    Réponses: 3
    Dernier message: 25/08/2006, 08h58
  3. [PHP-JS] Afficher code PHP dans page JSP
    Par metatron dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/08/2006, 09h36
  4. Inserer code PHP dans page JSP
    Par metatron dans le forum Servlets/JSP
    Réponses: 22
    Dernier message: 01/08/2006, 13h51
  5. [JSP][Struts][Debutant]Probleme de liens dans pages JSP
    Par bluefox_du_974 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/12/2004, 16h17

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