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 :
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
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>
Avec l'IP de ma machine.
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>
Une page User.java pour mon entité :
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 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; } }
Quand j'essaye d'ajouter un nouvel utilisateur, j'obtiens une nouvelle fenêtre avec un message d'erreur
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(); } }
Et ma base de données ne se met pas à jour.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
J'ai par ailleurs créé la table "users" avec les colonnes "firstname" "lastname" "age" "country" "id" :
Quelqu'un aurait-il une idée pour me débloquer ?
Merci d'avance pour votre aide.
Partager