Bonjour à tous, j'essaye de mettre au point un service "register" classique où pour le moment je demande simplement le prénom, le nom et le pays.
J'ai créée Mes pages : addUser.jsp , AddUserServlet.java , Persistence.xml , et mon entité JPA User.java. et j'ai également créer ma base de donnée et ma table user sur Mysql.
Le problème est que rien ne fonctionne, je suis totalement perdu...
Si quelqu'un peut m'aider à me dépanner ce serait sympa !
addUser.jsp:
AddUserServlet.java :
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 <%@ 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> <input type="submit" value="Ajouter" /> </p> </form> <%@ include file="/footer.jsp" %> </body> </html>
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 package com.supinfo.supmessaging.servlet; import java.io.IOException; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; 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.supmessaging.entity.User; @WebServlet(urlPatterns = "/AddUser") 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 { String firstname = req.getParameter("firstname"); String lastname = req.getParameter("lastname"); String country = req.getParameter("country"); if(firstname == null || firstname.trim().isEmpty()) { req.setAttribute("errors", true); RequestDispatcher rd = req.getRequestDispatcher("/addUser.jsp"); rd.forward(req, resp); return; } User user = new User(); user.setFirstName(firstname); user.setLastName(lastname); user.setCountry(country); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); em.persist(user); em.getTransaction().commit(); resp.sendRedirect(req.getContextPath() + "/index.jsp"); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { RequestDispatcher rd = req.getRequestDispatcher("/index.jsp"); rd.forward(req, resp); } @Override public void destroy() { emf.close(); } }
User.java :
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="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> <property name="javax.persistence.jdbc.user" value="root" /> <property name="javax.persistence.jdbc.password" value="" /> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/supmessaging" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
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 package com.supinfo.supmessaging.entity; import java.io.Serializable; 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; 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; } }
Partager