1 pièce(s) jointe(s)
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:
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:
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:
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:
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
Citation:
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" :
Pièce jointe 162911
Quelqu'un aurait-il une idée pour me débloquer ?
Merci d'avance pour votre aide.