MyShop: CRUD dans la couche web
Par François Pfister,
mercredi 12 avril 2006 à 10:59 :: Cours et TP Java 3a 2006
:: #36
:: rss
Implémentation des fonctions
CRUD (Create, Retrieve, Update, Delete) dans la couche web
à faire:
-
Créer la classe de test unitaire pour Product
-
Créer les jsp et les servlets pour les classes Order, OrderItem,
et Product, et les tester manuellement
-
Faire un "refactoring" afin de remonter dans une classe BaseServlet
le code commun aux quatre servlets
-
Proposer un enchaînement de pages pour réaliser la fonction
d'achat en ligne. (Page d'accueil, choix d'un article, ajout dans le panier,
etc...)
récupérer le code source
de cette version du TP ici
Le code source de la
jsp
Le code source de la
servlet
package servlet;
import generic.PersistenceException;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import app.Customer;
import app.dao.jdbc.CustomerDao;
public class TestCustomerServlet extends HttpServlet {
private static final long serialVersionUID = 6731281431244223426L;
private static Log log = LogFactory.getLog(TestCustomerServlet.class);
private static CustomerDao customerDao = CustomerDao.getInstance();
private Customer customer;
private List customers;
private String name;
private String forName;
private String address;
private String town;
private String country;
private String totalPrice;
protected List findByParentId(String id) throws PersistenceException {
return customerDao.findByParentId(id);
}
public Customer getCustomer() {
return customer;
}
protected Customer findByName(String name, String forName)
throws PersistenceException {
log.debug("findByName " + name + ";" + forName);
return (Customer) customerDao.findByName(name + ";" + forName);
}
protected Customer findById(String id) throws PersistenceException {
return (Customer) customerDao.findById(id);
}
public Customer find(Integer id) throws PersistenceException {
log.debug("find " + id);
Customer o = findById(id.toString());
return o;
}
protected void save() {
log.debug("save ");
update();
customerDao.save(customer);
}
protected void delete() {
log.debug("delete " + customer.getId());
customerDao.delete(customer);
customer = new Customer();
}
protected void update() {
customer.setAddress(address);
customer.setCountry(country);
customer.setForName(forName);
customer.setName(name);
try {
customer.setTotalPrice(Double.parseDouble(totalPrice));
} catch (Exception e) {
customer.setTotalPrice(0.0);
}
customer.setTown(town);
}
protected void getParameters(HttpServletRequest request) {
address = request.getParameter("address");
country = request.getParameter("country");
forName = request.getParameter("forName");
name = request.getParameter("name");
totalPrice = request.getParameter("totalPrice");
town = request.getParameter("town");
}
protected void clear() {
address = "";
country = "";
forName = "";
name = "";
totalPrice = "0.0";
town = "";
}
protected synchronized void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try {
String cmd = request.getParameter("cmd");
String id = request.getParameter("id");
getParameters(request);
if ("ajouter".equals(cmd)) {
id = ""; // pour forcer la création d'un nouvel objet
clear();
}
if (!"null".equals(id) && !"".equals(id))
customer = find(new Integer(id));
else
customer = new Customer();
if ("modifier".equals(cmd) || "ajouter".equals(cmd))
save();
else if ("supprimer".equals(cmd))
delete();
customers = findByParentId(null); // liste de tous les customers
request.setAttribute("customer", customer);
request.setAttribute("customers", customers);
RequestDispatcher dispatcher = request
.getRequestDispatcher("jsp/testcustomer.jsp");
dispatcher.forward(request, response);
} catch (PersistenceException e) {
response.getWriter().println("error " + e.getMessage());
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
|
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.