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 :

Données non mises à jour en base


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut Données non mises à jour en base
    Bonjour,

    J'ai un projet JEE à réaliser et actuellement je cherche à faire une page d'enregistrement pour les utilisateurs. Les utilisateurs seront enregistré dans une base de donnée MySQL.

    J'ai donc créé une page addUser.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
    49
     <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!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>Add user</title>
    </head>
    <body>
     
        <h2>New user</h2>
     
        <c:if test="${errors}">
            <p style="color: red">Des erreurs sont présentes sur le formulaire</p>
        </c:if>
     
        <form action="<%= request.getContextPath() %>/adduser" method="post">
     
            <p>
                <label for="lastname">Lastname :</label>
                <input type="text" size="40" name="lastname" id="lastname" />
            </p>
     
            <p>
                <label for="firstname">Firstname :</label>
                <input type="text" size="40" name="firstname" id="firstname" />
            </p>
     
            <p>
                <label for="country">Country :</label>
                <textarea name="country" id="country" cols="40"></textarea>
            </p>
     
            <p>
                <label for="age">Age</label>
                <input type="text" size="10" name="age" id="age" />
            </p>
     
            <p>
                <input type="submit" value="Ajouter" />
            </p>
     
        </form>
     
        <%@ include file="/footer.jsp" %>
     
    </body>
    </html>
    Une page persistence.xml :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
        version="2.0">
     
        <persistence-unit name="PU" transaction-type="RESOURCE_LOCAL">
     
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
     
            <properties>
                <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
                <property name="hibernate.connection.user" value="root" />
                <property name="hibernate.connection.password" value="root" />
                <property name="hibernate.connection.url" value="jdbc:mysql://192.168.152.1:3306/supmessaging" />
                <property name="hibernate.hbm2ddl.auto" value="update" />
            </properties>
        </persistence-unit>
    </persistence>
    Avec l'IP de ma machine.

    Une page User.java pour mon entité :
    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
    63
    64
    65
    package com.supinfo.supmessaging.entity;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.Table;
     
    @Entity
    @Table(name = "users")
    public class User {
     
        @Id
        @GeneratedValue
        private long id;
     
        private String firstname;
     
        private String lastname;
     
        private String country;
     
        private float age;
     
        public long getId() {
            return id;
        }
     
        public void setId(long id) {
            this.id = id;
        }
     
        public String getFirstName() {
            return firstname;
        }
     
        public void setFirstName(String firstname) {
            this.firstname = firstname;
        }
     
        public String getLastName() {
            return lastname;
        }
     
        public void setLastName(String lastname) {
            this.lastname = lastname;
        }
     
        public String getCountry() {
            return country;
        }
     
        public void setCountry(String country) {
            this.country = country;
        }
     
        public float getAge() {
            return age;
        }
     
        public void setAge(float age) {
            this.age = age;
        }
    }
    et enfin une page AddUserServlet :
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    package com.supinfo.supmessaging.servlet;
     
    import java.io.IOException;
    import java.util.List;
     
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;
    import javax.persistence.Query;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import com.supinfo.sun.supcommerce.bo.SupProduct;
    import com.supinfo.sun.supcommerce.doa.SupProductDao;
    import com.supinfo.supmessaging.entity.User;
     
    @WebServlet(urlPatterns = "/auth/addProduct")
    public class AddUserServlet extends HttpServlet {
     
        private EntityManagerFactory emf;
     
        @Override
        public void init() throws ServletException {
            emf = Persistence.createEntityManagerFactory("PU");
        }
     
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     
            boolean errors = false;
     
            String firstname = req.getParameter("firstname");
            String lastname = req.getParameter("lastname");
            String country = req.getParameter("country");
            String ageParam = req.getParameter("age");
     
            if (firstname == null || firstname.trim().isEmpty() || country == null || country.trim().isEmpty()) {
                errors = true;
            }
     
            float age = 0;
     
            try {
                age = Float.valueOf(ageParam);
            } catch (NumberFormatException e) {
                errors = true;
            }
     
            if (errors) {
                req.setAttribute("errors", true);
                RequestDispatcher rd = req.getRequestDispatcher("/addUser.jsp");
                rd.forward(req, resp);
            } else {
     
                EntityManager em = emf.createEntityManager();
     
                User user = new User();
                user.setFirstName(firstname);
                user.setLastName(lastname);
                user.setCountry(country);
                user.setAge(age);
     
                em.getTransaction().begin();
                em.persist(user);
                em.getTransaction().commit();
                em.close();
     
                resp.sendRedirect(req.getContextPath() + "/profileUser?id=" + user.getId());
            }
        }
     
        public void destroy() {
            emf.close();
        }
    }
    Quand j'essaye d'ajouter un nouvel utilisateur, j'obtiens une nouvelle fenêtre avec un message d'erreur
    Etat HTTP 404 - /SupMessaging/adduser

    type Rapport d''état

    message /SupMessaging/adduser

    description La ressource demandée n'est pas disponible.

    Apache Tomcat/7.0.56
    Et ma base de données ne se met pas à jour.

    J'ai par ailleurs créé la table "users" avec les colonnes "firstname" "lastname" "age" "country" "id" :
    Nom : Capture.JPG
Affichages : 144
Taille : 123,8 Ko

    Quelqu'un aurait-il une idée pour me débloquer ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour

    L'URL "/SupMessaging/adduser" n'est pas reconnu par Tomcat. Pour ta servlet, tu as défini l'URL suivante "/auth/addProduct".

    Bonne journée
    Fabio

  3. #3
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut
    a moins de l´avoir declarer dans ton web.xml.
    Sinon ton Url est pas bon.

    Eric

Discussions similaires

  1. updateRow() : Données non mises à jour
    Par Neuromancien2 dans le forum JDBC
    Réponses: 5
    Dernier message: 23/10/2008, 00h02
  2. [Cours pt-05]Moteur de mise à jour de base de données
    Par Papy Turbo dans le forum Sondages et Débats
    Réponses: 38
    Dernier message: 29/10/2007, 19h02
  3. Requête de mise à jour - Ouverture base de données
    Par ade94 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 31/05/2007, 16h50
  4. Réponses: 7
    Dernier message: 15/01/2007, 18h18
  5. Problème de mise à jour de base de données
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 11h38

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