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 :

Ajouter et Afficher des enregistrements en JSP/Servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut Ajouter et Afficher des enregistrements en JSP/Servlet
    Bonsoir à vous,

    Je suis débutant en JavaEE et j'aimerais apprendre à créer un simple CRUD avec des pages jsp/servlet, je ne veux pas utiliser de framework pour le moment.
    Dans ma database, j'ai une table nommé clubs avec 2 champs, qui sont clubid et club.

    Lorsque je crée un enregistrement depuis WampServer je récupère bien l'enregistrement depuis ma page jsp.

    (Wamp)

    Nom : 1.png
Affichages : 130
Taille : 1,5 Ko

    (Formulaire JSP)

    Nom : 1.png
Affichages : 121
Taille : 1,8 Ko

    Mon soucis est que si je veux ajouter un enregistrement depuis mon formulaire d'ajout, rien ne se passe après l'encodage du club.

    Nom : 1.png
Affichages : 167
Taille : 2,6 Ko

    L'encodage ne passe pas...Et, je n'ai pas de message d'erreur.

    Nom : 1.png
Affichages : 169
Taille : 1,8 Ko

    Je pense que mon problème est au niveau de mon servlet mais voici comme même avant tout, mes méthodes addClub() et getAllClubs().

    Code java : 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
    public void addClub(ClubBean clubBean) {
            try {
                String sql = "INSERT INTO clubs(club) " 
                + " VALUES (?)";
                PreparedStatement ps = conn.prepareStatement(sql); 
                ps.setString(1, clubBean.getnameClub());   
                ps.executeUpdate();
     
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
     
        public List getAllClubs() {
            List clubs = new ArrayList();
            try {
                String sql = "SELECT * FROM clubs";
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                while (rs.next()) {
                    ClubBean clubBean = new ClubBean();
     
                    clubBean.setId(rs.getInt("clubid"));
                    clubBean.setnameClub(rs.getString("club")); 
                    clubs.add(clubBean);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
     
            return clubs;
        }


    Je pense que mon problème est dans mon servlet, mais je ne vois pas trop où ça coince?

    Code java : 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
    public class ClubHandler extends HttpServlet {    
        private static String INSERT = "/club.jsp";
        private static String Edit = "/edit.jsp";
        private static String ClubRecord = "/listClub.jsp";
        private ClubDao dao;
     
        public ClubHandler() {
            super();
            dao = new ClubDao();
        }
     
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String redirect="";
            String uId = request.getParameter("clubid");        
            String action = request.getParameter("action");
            if(!((uId)== null) && action.equalsIgnoreCase("insert"))
            {
                int id = Integer.parseInt(uId);
                ClubBean club = new ClubBean();
                club.setId(id);
                club.setnameClub(request.getParameter("club"));
                dao.addClub(club);
                redirect = ClubRecord;
                request.setAttribute("clubs", dao.getAllClubs());    
                System.out.println("Record Added Successfully");
     
     
             } else if (action.equalsIgnoreCase("listClub")){
                redirect = ClubRecord;
                request.setAttribute("clubs", dao.getAllClubs());
             } else {
                redirect = INSERT;
            }
     
            RequestDispatcher rd = request.getRequestDispatcher(redirect);
            rd.forward(request, response);
        }


    Je vous remercie pour votre aide.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ça serait bien de nous montrer le code de ta page...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Ça serait bien de nous montrer le code de ta page...
    Vous voulez dire quoi par rapport au code de la page? Vous parlez des jsp?

    index.jsp

    Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Project Club</title>
    </head>
    <body>
    <p><a href="club.jsp">Add club</a></p>
    </body>
    </html>

    club.jsp

    Code jsp : 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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!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=ISO-8859-1">
    <title>Add New Club</title>
    </head>
    <body>
    <form method="POST" action='ClubHandler' name="frmAddClub"><input
    type="hidden" name="action" value="insert" />
    <p><b>Add New Record</b></p>
    <table>
     
     
     
    <tr>
    <td>Club Name : </td>
    <td><input type="text" name="club" /></td>
    </tr>
     
     
     
    <tr>
    <td></td>
    <td><input type="submit" value="Submit" /></td>
    </tr>
    </table>
    </form>
    <p><a href="ClubHandler?action=listClub">View-All-Records</a></p>
    </body>
    </html>

    listClub.jsp

    Code jsp : 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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="com.clubsport.bean.ClubBean"%>
    <%@ page import="com.clubsport.dao.ClubDao"%>
    <%@ page import="java.util.*"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>All User</title>
    </head>
    <body>
    <%
     
    ClubDao dao = new ClubDao();
    List<ClubBean> clubList = dao.getAllClubs();
     
    %>
    <table border="1">
    <tr>
    <th>Id</th>
    <th>Club</th>
    </tr>
    <tr>
    <%
     
    for (ClubBean club : clubList) {
    %>
    <td><%=club.getId()%></td>
    <td><%=club.getnameClub()%></td>
    <td><a
    href="ClubHandler?action=editform&clubId=<%=club.getId()%>">Update</a></td>
    <td><a
    href="ClubHandler?action=delete&clubId=<%=club.getId()%>">Delete</a></td>
     
    </tr>
    <%
    }
    //}
    %>
    </table>
    <p><a href="ClubHandler?action=insert">Add Club</a></p>
    </body>
    </html>


    Voici également le ma class clubBean

    Code java : 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
    public class ClubBean {
     
        private int id;
        private String nameClub;
     
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getnameClub() {
            return nameClub;
        }
        public void setnameClub(String nameClub) {
            this.nameClub = nameClub;
        }
    }

    Je sais vraiment pas où se situe le problème? Je n'ai aucun message d'erreur...

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je voulais voir le code de la JSP...

    Alors, c'est un peu ce que je pensais, tu as défini la méthode doGet dans ta servlet mais tu utilises un formulaire en POST.
    Il faudrait définir la méthode doPost plutôt que doGet pour ce genre de traitement.
    Il est préférable d'utiliser un formulaire en POST, ça t'évitera d'avoir tous les paramètres = valeur dans l'URL (si tu as un mot de passe dans un formulaire, autant dire qu'il se verra bien )
    sans compter que via l'URL tu as une limite de longueur (dépendante du navigateur et/ou de l'OS).
    Bref, beaucoup mieux en POST.

    Si tu ne veux pas avoir à choisir entre doGet ou doPost, tu peux également prendre la méthode service, elle répond à toutes les requêtes.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    Ah merci pour tes explications, j'ai modifié mon formulaire.

    Je viens d'y arriver ainsi.

    Code java : 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
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        	String redirect="";
            String action = request.getParameter("action");
     
        	if(action.equalsIgnoreCase("insert"))
            {
     
                 ClubBean club = new ClubBean();
                club.setnameClub(request.getParameter("club"));
     
     
               dao.addClub(club);
                 redirect = ClubRecord;
                request.setAttribute("clubs", dao.getAllClubs());    
               System.out.println("Record Added Successfully");
            }
           else if (action.equalsIgnoreCase("listClub")){
            redirect = ClubRecord;
            request.setAttribute("clubs", dao.getAllClubs());
         } else {
            redirect = INSERT;
        }
     
        	 RequestDispatcher rd = request.getRequestDispatcher(redirect);
             rd.forward(request, response);
     
        }


    Je pense que j'ai oublié encore des choses?

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Tamzoro Voir le message
    Je viens d'y arriver ainsi.

    ...

    Je pense que j'ai oublié encore des choses?
    Euh, je ne comprends pas : ça marche ou ça marche pas ?

    Tu dis tu a modifié ton formulaire mais comment ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Euh, je ne comprends pas : ça marche ou ça marche pas ?

    Tu dis tu a modifié ton formulaire mais comment ?
    Oui ça fonctionne, je me suis mal exprimé... Je voulais dire que j'ai modifié le mot clef GET par POST dans mon fichier user.jsp (le formulaire).

    Ensuite, j'ai revu la méthode doGet et j'ai plutôt utilisé la méthode doPost dans mon servlet comme tu m'avais expliqué.

    Actuellement, je peux créer, afficher, supprimer des enregistrements. Je bloque depuis tout à l'heure par rapport à la modification d'un enregistrement ça fonctionne pas mais c'est un autre sujet. Je cherche encore quelques heures...

    Si je n'y arrive pas je pense que je vais poster sur le forum pour solliciter votre aide.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/09/2007, 20h36
  2. Présentation des données sur JSP -> Servlet ou JavaBean ?
    Par tiamat dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 15/08/2007, 19h00
  3. comment afficher des enregistrements qui se ressemblent
    Par barribar dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/06/2007, 20h06
  4. Afficher des enregistrements sur deux colonnes
    Par Dauphind dans le forum Access
    Réponses: 1
    Dernier message: 22/06/2006, 14h16
  5. Afficher des enregistrement en colonne ?
    Par Goldenduck4000 dans le forum Access
    Réponses: 6
    Dernier message: 20/04/2006, 14h11

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